Skip to main content

Overview

The WindowNode represents a configurable parametric window that can be placed on walls. It supports various window configurations including multi-pane divisions, frame customization, and optional sills. Key features:
  • Wall-mounted placement with configurable side
  • Flexible pane division with column and row ratios
  • Configurable frame and dividers
  • Optional window sill

Type Signature

Source: /home/daytona/workspace/source/packages/core/src/schema/nodes/window.ts

Fields

Inherited from BaseNode

string
required
Unique window identifier.Format: window_{randomString}Example: "window_a1b2c3d4e5f6g7h8"
string
required
Always set to "window".Default: "window"
string
Optional name for the window.Example: "Living Room Window", "Bay Window"
string | null
required
Reference to the parent level’s ID.Example: "level_abc123"Default: null
boolean
Controls window visibility.Default: true
CameraSchema
Optional camera viewpoint for the window.
any
Custom metadata for the window.Default: {}

Window-Specific Fields

[number, number, number]
required
Center position of the window in wall-local coordinate system.Format: [x, y, z] in metersDefault: [0, 0, 0]Example: [2.5, 1.5, 0] (2.5m along wall, 1.5m high)
[number, number, number]
required
Rotation of the window in radians.Format: [rx, ry, rz] in radiansDefault: [0, 0, 0]
'front' | 'back'
Which side of the wall the window is placed on.Values:
  • "front" - Front side of the wall
  • "back" - Back side of the wall
string
Reference to the wall node ID this window is attached to.Example: "wall_abc123"
number
required
Overall width of the window in meters.Default: 1.5Example: 1.5 (standard window), 2.0 (wide window)
number
required
Overall height of the window in meters.Default: 1.5Example: 1.5 (standard window), 2.0 (tall window)
number
required
Thickness of the window frame members in meters.Default: 0.05Example: 0.05 (5cm frame)
number
required
Depth of the frame within the wall in meters.Default: 0.07Example: 0.07 (7cm deep frame)
Array<number>
required
Horizontal pane division ratios.Default: [1] (single pane)Examples:
  • [1] - Single pane, no vertical division
  • [0.5, 0.5] - Two equal panes
  • [0.6, 0.4] - One larger pane (60%), one smaller (40%)
Values represent proportions and must sum to 1.0.
Array<number>
required
Vertical pane division ratios.Default: [1] (single pane)Examples:
  • [1] - Single pane, no horizontal division
  • [0.5, 0.5] - Two equal panes (top and bottom)
  • [0.3, 0.7] - Smaller top pane (30%), larger bottom pane (70%)
Values represent proportions and must sum to 1.0.
number
required
Thickness of vertical dividers between columns in meters.Default: 0.03Example: 0.03 (3cm divider)
number
required
Thickness of horizontal dividers between rows in meters.Default: 0.03Example: 0.03 (3cm divider)
boolean
required
Whether to show a window sill.Default: true
number
required
Depth (projection) of the window sill in meters.Default: 0.08Example: 0.08 (8cm sill projection)
number
required
Thickness (height) of the window sill in meters.Default: 0.03Example: 0.03 (3cm thick sill)

Example

Usage

Creating a Simple Single-Pane Window

Creating a Double-Hung Window (Two Vertical Panes)

Creating a Multi-Pane Window (Grid Pattern)

Creating a Bay Window (Wide with Multiple Sections)

Creating a Picture Window (No Dividers)

Creating a Clerestory Window (High Window)

Creating a Window Without Sill

Window Configuration

Windows support flexible configuration:
  • Dimensions: Width and height
  • Frame: Thickness and depth
  • Panes: Column and row divisions with custom ratios
  • Dividers: Configurable thickness for mullions
  • Sill: Optional with depth and thickness control

Pane Division Examples

Coordinate System

Windows use wall-local coordinates:
  • Position is relative to the wall’s coordinate system
  • Y coordinate represents vertical center of the window
  • Side parameter determines which face of the wall