← The houseWorking today

SpatialLang

Less output. More world.

SpatialLang turns plain words into an editable 3D world at real scale — ready for actors to perform in and cameras to move through.

01 · Less output. More world.

30 tokens. 40 objects.

Two lines the AI writes. The engine transposes them into 40 exact, typed objects - every size, position and rotation. Written out in prose, the same district takes 3,871 tokens.

SpatialLang source \u00b7 52 bytes \u00b7 30 tokens
W seed=4471 u=m tod=day
R city(dn=6,hs=14,pz=0,sy=5)
129xfewer tokens \u00b7 99.2% reduction
gate4.settlement.40 \u00b7 certified \u00b7 grok-4.3 tokenizer
Semantic transpose
Wworld headerseed 4471 · metres · daytime
R city(…)settlement ruleexpands to 40 typed entities
hs=14prefab.building.house14 × 10 × 5 × 8 m
sy=5prefab.building.skyscraper5 × 10 × 28 × 10 m
pzmodule.city.plaza1 central plaza
dn=6module.city.road20 connected road segments
Expanded entities \u00b7 4 of 40
city.hs1house10×5×8(4.37, 2.5, −1.11)0°
city.sy1skyscraper10×28×10(−51.80, 14, 53.82)0°
city.rd1road5.5×0.08×27.67(12.40, 0.04, −12.37)144.5°
city.rd11road5.5×0.08×29.35(−59.32, 0.04, 8.24)−24.9°
1 Plaza20 Roads14 Houses5 Skyscrapers
Same world in prose \u00b7 10,458 bytes \u00b7 3,871 tokens
Create the following exact deterministic SpatialLang scene in meters.
Use world seed 4471, time of day day, and preserve every identifier and transform listed below.
The scene contains exactly 40 semantic objects; do not add, remove, rename, or relocate any object.
Entity city.hs1 is catalog object prefab.building.house with code hs, role module, geometry box, size (10, 5, 8), center (4.36981426911, 2.5, -1.10666858959), rotation (0, 0, 0), scale (1, 1, 1), color #8aa2ad, opacity 1, and wireframe false.
Entity city.hs10 is catalog object prefab.building.house with code hs, role module, geometry box, size (10, 5, 8), center (-65.5083169233, 2.5, 21.5513023955), rotation (0, 0, 0), scale (1, 1, 1), color #8aa2ad, opacity 1, and wireframe false.
Entity city.hs11 is catalog object prefab.building.house with code hs, role module, geometry box, size (10, 5, 8), center (12.195460779, 2.5, -53.3037807858), rotation (0, 0, 0), scale (1, 1, 1), color #8aa2ad, opacity 1, and wireframe false.

\u2026 34 more entity lines

02 · The technology

A language, not a picture.

SpatialLang is a strict, line-by-line world language. Every object code is a single token for the model. A validator checks every placement before anything is written, and procedural rules expand the short source into the full scene - deterministically.

01

Brief

Plain language

02

AI + grammar

Cached grammar, registry, examples

03

SpatialLang

171 one-token codes

04

Validate

Parser · registry · physics of space

05

Expand

Deterministic procedural rules

06

Scene IR

Same input, same world - every time

Registry · single-token codes
cuprimitive.cube1 token
bxprimitive.box1 token
plprimitive.pillar1 token

171 of 171 codes measured as a single token on the model's own tokenizer.

Self-repair loop
→model proposes placements
✕validator: tower overlaps wall, 0.4 m
↺model told exactly why - retries
✓committed as revision

Nothing is written until it passes. Illustrative messages; the loop is real.

03 · Describe it

Type a sentence. Get a place.

Riverside Village, built live from an empty 40 × 40 m board. Each request reads the world so far: the stalls face the well, the lamps flank the road. Real request, real generation time.

Real Studio output
t027 s

Build a small village: four houses around a central square with a well in the middle, and a dirt road leading to the south edge.

t037 s

Add a small market: three stalls in a row on the east side of the square, facing the well.

t0416 s · 1 self-repair

Plant a row of pine trees along the north edge, and a few oak trees between the houses.

t0516 s

In the south-west corner, add a pond with a small wooden dock and a bench facing the water.

t068 s

Line the road with lamp posts on both sides, about every 5 metres.

04 · On the clock

Nothing sped up in secret.

Uncut screen recordings with the real wall-clock time burned in. We play them at 4× - the counter keeps true seconds, including the wait for the model and every self-repair.

Village · one request
Keep · self-repaired
Camp · 2 self-repairs
Harbour · pier & boats

05 · Any world

Four worlds. 19 of 19 requests.

A village, a castle, a forest camp and a harbour - each from an empty board, built only by typing. Every request committed; seven were fixed by the engine's own self-repair on the way.

Riverside Village

6 requests · 63 s of generation

Ravenhold Keep

5 requests · 67 s · 3 self-repairs

Pinewood Camp

4 requests · 78 s · 4 self-repairs

Saltmarsh Harbour

4 requests · 28 s of generation

06 · Trust it

Big asks. Full history.

"Plant a forest of 300 trees" becomes a representative forest in the free space - not a failure. And every change is a saved revision you can undo, redo or branch from, kept in a local project file.

300 trees · real clock
Undo · redo · revisions

07 · Direct it

Then put people in it.

A plain-language direction becomes a cast, timed moves and named cameras on a finished world. The scene never changes the world - it's a saved, replayable timeline.

Direction · Ravenhold Keep

▍

4

cast

19

moves

42 s

scene

9 s

to direct

Beat 1 of 4 · real playback

08 · Shoot it

Cast in the world. Any camera.

Directed performers moving through real SpatialLang worlds, shot from named and free cameras. Every frame here is a native Studio render - stand-in figures, real timing.

Native render \u00b7 SpatialLang Studio

One 22 s performance - the mayor, Mara and Tomas walking the village road - exported from eight named cameras at once, frame-synchronised.

09 · Finish it

Blockout in. Cinema out.

Drag across the frame. Underneath is the moving SpatialLang blockout; on top is the AI video it drove. Same shot, same layout - the world gives the model a concrete reference.

\u2194
SpatialLang blockoutAI interpretation \u00b7 Seedance

10 · Honestly

What works today. What's next.

Geometry is stand-in art sized from the generated dimensions, and performers slide rather than walk. The language, the engine and the evidence are real.

Working today
  • ●Plain language → editable 3D world
  • ●Validation + automatic self-repair
  • ●Durable revisions, undo / redo
  • ●Directed cast, moves and named cameras
  • ●Certified 129× token compression
Next to validate
  • ○Final art swap for stand-in geometry
  • ○Walk cycles for performers
  • ○Reusable, connected spaces
  • ○Editing inside VR on the stage

01 · Less output. More world.

30 tokens. 40 objects.

Two lines the AI writes. The engine transposes them into 40 exact, typed objects - every size, position and rotation. Written out in prose, the same district takes 3,871 tokens.

SpatialLang source \u00b7 52 bytes \u00b7 30 tokens
W seed=4471 u=m tod=day
R city(dn=6,hs=14,pz=0,sy=5)
129xfewer tokens \u00b7 99.2% reduction
gate4.settlement.40 \u00b7 certified \u00b7 grok-4.3 tokenizer
Semantic transpose
Wworld headerseed 4471 · metres · daytime
R city(…)settlement ruleexpands to 40 typed entities
hs=14prefab.building.house14 × 10 × 5 × 8 m
sy=5prefab.building.skyscraper5 × 10 × 28 × 10 m
pzmodule.city.plaza1 central plaza
dn=6module.city.road20 connected road segments
Expanded entities \u00b7 4 of 40
city.hs1house10×5×8(4.37, 2.5, −1.11)0°
city.sy1skyscraper10×28×10(−51.80, 14, 53.82)0°
city.rd1road5.5×0.08×27.67(12.40, 0.04, −12.37)144.5°
city.rd11road5.5×0.08×29.35(−59.32, 0.04, 8.24)−24.9°
1 Plaza20 Roads14 Houses5 Skyscrapers
Same world in prose \u00b7 10,458 bytes \u00b7 3,871 tokens
Create the following exact deterministic SpatialLang scene in meters.
Use world seed 4471, time of day day, and preserve every identifier and transform listed below.
The scene contains exactly 40 semantic objects; do not add, remove, rename, or relocate any object.
Entity city.hs1 is catalog object prefab.building.house with code hs, role module, geometry box, size (10, 5, 8), center (4.36981426911, 2.5, -1.10666858959), rotation (0, 0, 0), scale (1, 1, 1), color #8aa2ad, opacity 1, and wireframe false.
Entity city.hs10 is catalog object prefab.building.house with code hs, role module, geometry box, size (10, 5, 8), center (-65.5083169233, 2.5, 21.5513023955), rotation (0, 0, 0), scale (1, 1, 1), color #8aa2ad, opacity 1, and wireframe false.
Entity city.hs11 is catalog object prefab.building.house with code hs, role module, geometry box, size (10, 5, 8), center (12.195460779, 2.5, -53.3037807858), rotation (0, 0, 0), scale (1, 1, 1), color #8aa2ad, opacity 1, and wireframe false.

\u2026 34 more entity lines

02 · The technology

A language, not a picture.

SpatialLang is a strict, line-by-line world language. Every object code is a single token for the model. A validator checks every placement before anything is written, and procedural rules expand the short source into the full scene - deterministically.

01

Brief

Plain language

02

AI + grammar

Cached grammar, registry, examples

03

SpatialLang

171 one-token codes

04

Validate

Parser · registry · physics of space

05

Expand

Deterministic procedural rules

06

Scene IR

Same input, same world - every time

Registry · single-token codes
cuprimitive.cube1 token
bxprimitive.box1 token
plprimitive.pillar1 token

171 of 171 codes measured as a single token on the model's own tokenizer.

Self-repair loop
→model proposes placements
✕validator: tower overlaps wall, 0.4 m
↺model told exactly why - retries
✓committed as revision

Nothing is written until it passes. Illustrative messages; the loop is real.

03 · Describe it

Type a sentence. Get a place.

Riverside Village, built live from an empty 40 × 40 m board. Each request reads the world so far: the stalls face the well, the lamps flank the road. Real request, real generation time.

Real Studio output
t027 s

Build a small village: four houses around a central square with a well in the middle, and a dirt road leading to the south edge.

t037 s

Add a small market: three stalls in a row on the east side of the square, facing the well.

t0416 s · 1 self-repair

Plant a row of pine trees along the north edge, and a few oak trees between the houses.

t0516 s

In the south-west corner, add a pond with a small wooden dock and a bench facing the water.

t068 s

Line the road with lamp posts on both sides, about every 5 metres.

04 · On the clock

Nothing sped up in secret.

Uncut screen recordings with the real wall-clock time burned in. We play them at 4× - the counter keeps true seconds, including the wait for the model and every self-repair.

Village · one request
Keep · self-repaired
Camp · 2 self-repairs
Harbour · pier & boats

05 · Any world

Four worlds. 19 of 19 requests.

A village, a castle, a forest camp and a harbour - each from an empty board, built only by typing. Every request committed; seven were fixed by the engine's own self-repair on the way.

Riverside Village

6 requests · 63 s of generation

Ravenhold Keep

5 requests · 67 s · 3 self-repairs

Pinewood Camp

4 requests · 78 s · 4 self-repairs

Saltmarsh Harbour

4 requests · 28 s of generation

06 · Trust it

Big asks. Full history.

"Plant a forest of 300 trees" becomes a representative forest in the free space - not a failure. And every change is a saved revision you can undo, redo or branch from, kept in a local project file.

300 trees · real clock
Undo · redo · revisions

07 · Direct it

Then put people in it.

A plain-language direction becomes a cast, timed moves and named cameras on a finished world. The scene never changes the world - it's a saved, replayable timeline.

Direction · Ravenhold Keep

▍

4

cast

19

moves

42 s

scene

9 s

to direct

Beat 1 of 4 · real playback

08 · Shoot it

Cast in the world. Any camera.

Directed performers moving through real SpatialLang worlds, shot from named and free cameras. Every frame here is a native Studio render - stand-in figures, real timing.

Native render \u00b7 SpatialLang Studio

One 22 s performance - the mayor, Mara and Tomas walking the village road - exported from eight named cameras at once, frame-synchronised.

09 · Finish it

Blockout in. Cinema out.

Drag across the frame. Underneath is the moving SpatialLang blockout; on top is the AI video it drove. Same shot, same layout - the world gives the model a concrete reference.

\u2194
SpatialLang blockoutAI interpretation \u00b7 Seedance

10 · Honestly

What works today. What's next.

Geometry is stand-in art sized from the generated dimensions, and performers slide rather than walk. The language, the engine and the evidence are real.

Working today
  • ●Plain language → editable 3D world
  • ●Validation + automatic self-repair
  • ●Durable revisions, undo / redo
  • ●Directed cast, moves and named cameras
  • ●Certified 129× token compression
Next to validate
  • ○Final art swap for stand-in geometry
  • ○Walk cycles for performers
  • ○Reusable, connected spaces
  • ○Editing inside VR on the stage

01 · Less output. More world.

30 tokens. 40 objects.

Two lines the AI writes. The engine transposes them into 40 exact, typed objects - every size, position and rotation. Written out in prose, the same district takes 3,871 tokens.

SpatialLang source \u00b7 52 bytes \u00b7 30 tokens
W seed=4471 u=m tod=day
R city(dn=6,hs=14,pz=0,sy=5)
129xfewer tokens \u00b7 99.2% reduction
gate4.settlement.40 \u00b7 certified \u00b7 grok-4.3 tokenizer
Semantic transpose
Wworld headerseed 4471 · metres · daytime
R city(…)settlement ruleexpands to 40 typed entities
hs=14prefab.building.house14 × 10 × 5 × 8 m
sy=5prefab.building.skyscraper5 × 10 × 28 × 10 m
pzmodule.city.plaza1 central plaza
dn=6module.city.road20 connected road segments
Expanded entities \u00b7 4 of 40
city.hs1house10×5×8(4.37, 2.5, −1.11)0°
city.sy1skyscraper10×28×10(−51.80, 14, 53.82)0°
city.rd1road5.5×0.08×27.67(12.40, 0.04, −12.37)144.5°
city.rd11road5.5×0.08×29.35(−59.32, 0.04, 8.24)−24.9°
1 Plaza20 Roads14 Houses5 Skyscrapers
Same world in prose \u00b7 10,458 bytes \u00b7 3,871 tokens
Create the following exact deterministic SpatialLang scene in meters.
Use world seed 4471, time of day day, and preserve every identifier and transform listed below.
The scene contains exactly 40 semantic objects; do not add, remove, rename, or relocate any object.
Entity city.hs1 is catalog object prefab.building.house with code hs, role module, geometry box, size (10, 5, 8), center (4.36981426911, 2.5, -1.10666858959), rotation (0, 0, 0), scale (1, 1, 1), color #8aa2ad, opacity 1, and wireframe false.
Entity city.hs10 is catalog object prefab.building.house with code hs, role module, geometry box, size (10, 5, 8), center (-65.5083169233, 2.5, 21.5513023955), rotation (0, 0, 0), scale (1, 1, 1), color #8aa2ad, opacity 1, and wireframe false.
Entity city.hs11 is catalog object prefab.building.house with code hs, role module, geometry box, size (10, 5, 8), center (12.195460779, 2.5, -53.3037807858), rotation (0, 0, 0), scale (1, 1, 1), color #8aa2ad, opacity 1, and wireframe false.

\u2026 34 more entity lines

02 · The technology

A language, not a picture.

SpatialLang is a strict, line-by-line world language. Every object code is a single token for the model. A validator checks every placement before anything is written, and procedural rules expand the short source into the full scene - deterministically.

01

Brief

Plain language

02

AI + grammar

Cached grammar, registry, examples

03

SpatialLang

171 one-token codes

04

Validate

Parser · registry · physics of space

05

Expand

Deterministic procedural rules

06

Scene IR

Same input, same world - every time

Registry · single-token codes
cuprimitive.cube1 token
bxprimitive.box1 token
plprimitive.pillar1 token

171 of 171 codes measured as a single token on the model's own tokenizer.

Self-repair loop
→model proposes placements
✕validator: tower overlaps wall, 0.4 m
↺model told exactly why - retries
✓committed as revision

Nothing is written until it passes. Illustrative messages; the loop is real.

03 · Describe it

Type a sentence. Get a place.

Riverside Village, built live from an empty 40 × 40 m board. Each request reads the world so far: the stalls face the well, the lamps flank the road. Real request, real generation time.

Real Studio output
t027 s

Build a small village: four houses around a central square with a well in the middle, and a dirt road leading to the south edge.

t037 s
t0416 s · 1 self-repair
t0516 s
t068 s

04 · On the clock

Nothing sped up in secret.

Uncut screen recordings with the real wall-clock time burned in. We play them at 4× - the counter keeps true seconds, including the wait for the model and every self-repair.

Village · one request
Keep · self-repaired

05 · Any world

Four worlds. 19 of 19 requests.

A village, a castle, a forest camp and a harbour - each from an empty board, built only by typing. Every request committed; seven were fixed by the engine's own self-repair on the way.

Riverside Village

6 requests · 63 s of generation

Ravenhold Keep

5 requests · 67 s · 3 self-repairs

Pinewood Camp

4 requests · 78 s · 4 self-repairs

Saltmarsh Harbour

4 requests · 28 s of generation

06 · Trust it

Big asks. Full history.

"Plant a forest of 300 trees" becomes a representative forest in the free space - not a failure. And every change is a saved revision you can undo, redo or branch from, kept in a local project file.

300 trees · real clock
Undo · redo · revisions

07 · Direct it

Then put people in it.

A plain-language direction becomes a cast, timed moves and named cameras on a finished world. The scene never changes the world - it's a saved, replayable timeline.

Direction · Ravenhold Keep

▍

4

cast

19

moves

42 s

scene

9 s

to direct

Beat 1 of 4 · real playback

08 · Shoot it

Cast in the world. Any camera.

Directed performers moving through real SpatialLang worlds, shot from named and free cameras. Every frame here is a native Studio render - stand-in figures, real timing.

Native render \u00b7 SpatialLang Studio

One 22 s performance - the mayor, Mara and Tomas walking the village road - exported from eight named cameras at once, frame-synchronised.

09 · Finish it

Blockout in. Cinema out.

Drag across the frame. Underneath is the moving SpatialLang blockout; on top is the AI video it drove. Same shot, same layout - the world gives the model a concrete reference.

\u2194
SpatialLang blockoutAI interpretation \u00b7 Seedance

10 · Honestly

What works today. What's next.

Geometry is stand-in art sized from the generated dimensions, and performers slide rather than walk. The language, the engine and the evidence are real.

Working today
  • ●Plain language → editable 3D world
  • ●Validation + automatic self-repair
  • ●Durable revisions, undo / redo
  • ●Directed cast, moves and named cameras
  • ●Certified 129× token compression
Next to validate
  • ○Final art swap for stand-in geometry
  • ○Walk cycles for performers
  • ○Reusable, connected spaces
  • ○Editing inside VR on the stage

Where it fits

From story to finished film.

◎Perform in VRThe performance
→
Lucid Lines — the workspace around every step

Next room

Morpheus Wire