How the game reads requests
Twelve kinds of request and examples you can type into the game.
The game uses fixed keyword and phrase rules to place a request into one of twelve categories. In the source code, a category is called an Intent variant. The table begins with the technical name and then gives ordinary phrases you can try.
Note
Source of truth
The classifier lives in
compiler-rs/crates/loa-host/src/intent_router.rs. The scenes/intent_translation.cssl mirror is the eventual pure-CSSL re-implementation; both files are kept 1-to-1.All 12 variants
| Variant | Internal action | Example phrases |
|---|---|---|
Snapshot | render.snapshot_png | snapshotsnapcapturescreenshotWrites a single PNG into ./snapshots/ next to LoA.exe. |
Burst { count } | render.start_burst | burstburst 30burst of 100burst 10 framescount clamped to 1..1000 · default 10 if no number given. |
Tour { tour_id } | render.tour | tourtour wallstour floortour plinthstour ceilingtour defaultUnknown tour ids fall back to "default". |
SetCferIntensity { intensity } | render.cfer_intensity | intensity 0.5intensity cfer 0.5fog 0.3atmosphere 0.7Clamped to [0.0, 1.0] · default 0.10. |
SetIlluminant { name } | render.set_illuminant | illuminant d65set illuminant d50illuminant ailluminant f11Canonicalized to D65 / D50 / A / F11. |
Teleport { room_id } | room.teleport | teleport colorteleport to color roomgo to materialgoto patternRooms 0..4 · test/material/pattern/scale/color · alias-tolerant. |
SpawnAt { kind, pos[3] } | render.spawn_stress | spawn cube at 5 5 5drop sphere at 0 0 0place pyramid at 1.5 0 -3put torus at 5,5,514 stress shapes · cube/sphere/pyramid/cylinder/cone/tet/oct/torus/capsule/wedge/plinth/ramp/icosa/dodeca. |
SetWallPattern { wall_id, pattern_id } | render.set_wall_pattern | set wall north pattern qrwall n to qrwall east checkerWalls N=0 / E=1 / S=2 / W=3 · 22 pattern names available. |
SetFloorPattern { quadrant, pattern_id } | render.set_floor_pattern | set floor ne pattern checkerfloor sw checkerset floor northeast huewheelQuadrants NE=0 / NW=1 / SW=2 / SE=3. |
SetMaterial { quad_id, material_id } | render.set_material | material on plinth 3 brassset material 3 to brassmaterial 0 marble16 material aliases · default/wood/metal/brass/copper/gold/marble/glass/rubber/ceramic/fabric/leather/iridescent/obsidian/lacquer/carrara. |
SpontaneousSeed { text } | world.spontaneous_seed | spontaneous a sphereseed orbimagine a forestPartly implemented. The request is recorded and categorized, but the world-changing action is not implemented and returns "pending". |
Unknown { reason } | (no dispatch) | (any unmatched text)Reason carries the normalized input · increments INTENTS_UNKNOWN counter. |
Pattern-name vocabulary
SetWallPattern and SetFloorPattern accept these ~22 alias-tolerant pattern names. Type either the friendly name or the numeric pattern id.
solidgrid (1m / 100mm)checkerboardmacbethsnellenqrean13grayscalehuewheelperlinringsspokeszoneplatefrequency-sweepradial-gradientmandelbulbraymarch-sphereraymarch-torusgyroidjuliamengerMaterial-name vocabulary
Aliases · alphabetical order is alphabetical-tolerant
default | plasticwood | oakmetal | steel | ironbrass | gold-brasscoppergoldmarble | stoneglassrubberceramic | porcelainfabric | cloth | velvetleatheriridescent | soap-bubbleobsidian | black-glassvermillion-lacquer | lacquer | red-lacquerwhite-marble | carraraPhrasing notes
- The classifier lowercases input and splits on whitespace + commas.
- Most rules tolerate filler words (
to,the,on,a). - Numbers parse as f32 / u32 lenient · trailing commas allowed.
- "set X" and "X" forms are both accepted for wall / floor / material / illuminant.
- "go to" and "goto" both teleport.
Forward-looking
Planned
Possible later methods
Architecture notes explore a compact mathematical classifier and an outside language model for phrases the fixed rules do not understand. Those methods are not needed for the current list and must not be presented as available without release-specific evidence and a clear network permission.