Demo

Building customizer

Swap a door, a window style or a roof, hide optional parts and pick wall colours. The controls offer only what each asset declares; anything else is switched off with the reason.

Render of Town house with swappable parts (stylized-town/house-01@0.2.0) with its default parts and colours

What can change

8 assets of the kit can be customized without Blender. The demo calls library.instantiate(ref, values), and each instance keeps its own changes.

AssetOptions
Town house with swappable parts
front-doorwindow-styleroofchimneywall-colorroof-color
Cottage with swappable parts
front-doorwindow-styleroofwall-colorroof-color
Cafe with terrace
front-doorawningterracewall-color
Park bench
wood-colorsize-scalearmrests
Corner shop with swappable parts
front-doorawningwall-color
Town hall (landmark)
flagwall-color
Market stall
canopy-color
Street lamp
light

Every option with its allowed values

Before and after

Renders of Town house with swappable parts from the automated checks, with the default parts and with one tested combination.

Town house with swappable parts with default parts and colours
Defaults
Town house with swappable parts with front-door door-02, window-style window-02, roof roof-hip-01, chimney false, wall-color paving, roof-color curb-stone
{"front-door":"door-02","window-style":"window-02","roof":"roof-hip-01","chimney":false,"wall-color":"paving","roof-color":"curb-stone"}
What the SDK refuseswith a structured error
  • A part that a slot does not list: INCOMPATIBLE_PART / PART_NOT_ALLOWED.
  • A free colour where only palette swatches are declared: INVALID_PARAMETER / NOT_IN_CHOICES.
  • Hiding a part that is not a declared toggle, and geometry changes such as an extra storey: UNSUPPORTED_OPERATION / UNKNOWN_CAPABILITY.

Nothing is approximated. What to do instead.