Skip to main content

Overview

The CeilingNode represents a ceiling surface within a level. Ceilings are defined by a polygon boundary with support for holes (for skylights, vents, etc.), and can have items attached to them (light fixtures, ceiling fans, etc.). Key features:
  • Polygon-based boundary definition
  • Support for holes (skylights, ceiling vents)
  • Configurable height
  • Can host ceiling-mounted items (lights, fans, fixtures)

Type Signature

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

Fields

Inherited from BaseNode

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

Ceiling-Specific Fields

Array<[number, number]>
required
Array of [x, z] coordinates defining the ceiling boundary.Format: [[x1, z1], [x2, z2], [x3, z3], ...] in metersExample: [[0, 0], [5, 0], [5, 4], [0, 4]] (rectangular 5m × 4m ceiling)Points should be ordered counter-clockwise to define the ceiling surface.
Array<Array<[number, number]>>
Array of polygons representing holes in the ceiling (for skylights, vents, etc.).Default: []Format: Each hole is an array of [x, z] coordinatesExample:
Hole polygons should also be ordered counter-clockwise.
number
required
Height of the ceiling from the level floor in meters.Default: 2.5Example: 2.5 (standard 2.5m ceiling height), 3.0 (high ceiling)This defines the vertical position (Y coordinate) of the ceiling surface.
Array<string>
required
Array of item node IDs attached to this ceiling (lights, fans, fixtures).Default: []Example: ["item_light_001", "item_fan_001"]Ceiling-mounted items reference the ceiling and their position on it.

Example

Usage

Creating a Simple Rectangular Ceiling

Creating a Ceiling with Skylight

Creating an L-Shaped Ceiling

Suspended Ceiling with Multiple Holes

Adding Ceiling-Mounted Lights

Ceiling Geometry

The ceiling is rendered as a horizontal surface at the specified height:
  • Boundary: Defined by the polygon vertices
  • Holes: Cut-out regions within the boundary
  • Height: Y coordinate of the ceiling surface

Coordinate System

Ceilings use 2D coordinates in the level’s XZ plane for the polygon:
  • X axis: horizontal (left-right)
  • Z axis: horizontal (front-back)
  • Y axis: vertical (defined by height property)