{"asyncapi":"3.1.0","servers":{"session":{"x-fal-negotiated-by":"start_session_start_session_post","description":"Runtime-assigned WebRTC peer negotiated over HTTP.","protocol":"webrtc","host":"{sessionHost}","variables":{"sessionHost":{"description":"Logical peer supplied by the OpenAPI session negotiation.","default":"runtime-assigned.invalid"}}}},"info":{"title":"LingBotWorld2 realtime client API","description":"Client contract for the WebRTC session created by the linked OpenAPI operation.","version":"1.0.0"},"components":{"messages":{"server.error":{"title":"Server error message","name":"error","payload":{"$ref":"#/components/schemas/LingBotWorld2ServerControlErrorMessage"}},"client.reset":{"title":"Restart world","summary":"Start again with a different world or image.","examples":[{"summary":"A spectacular Mediterranean cliff city above the sea. A broad level stone promenade between terraced gardens leads to an open lookout, with small groups of visitors beside the path, distant boats, warm limestone architecture and immense clear ocean views.","x-fal-ui":{"thumbnail_url":"https://fal.ai/worlds-gallery/cinema/37-lingbot-photo-first-frame.webp","category":"Cinema collection","thumbnail_alt":"The City Above the Sea","order":0,"tags":["Cinema"]},"name":"The City Above the Sea","payload":{"type":"reset","image_url":"https://v3b.fal.media/files/b/0aad61cc/2Yx7Ey7Pi2QblGQXyf4yY_XdmbNwp8.png","prompt":"Photorealistic third-person exploration. Natural sunset light, believable stone and vegetation, true photographic materials. A spectacular Mediterranean cliff city above the sea. A broad level stone promenade between terraced gardens leads to an open lookout, with small groups of visitors beside the path, distant boats, warm limestone architecture and immense clear ocean views. Adult woman with warm brown skin, dark curly ponytail, burnt-orange windbreaker, ivory hiking trousers and dark boots. Third-person follow camera directly behind the character, complete body clearly visible at lower center, facing away along the open route. Keep the avatar visible and recognizable in every future view. Move smoothly forward together with the avatar; stable upright horizon, no cuts, no first-person conversion. Navigation-ready: minimum six-metre-wide unobstructed level route, floor visible to the vanishing point, all obstacles and other characters beside the path, open large turns, no stairs or narrow doorways."}},{"summary":"An immense orbital city around a ringed planet. A wide unobstructed pedestrian platform leads into a vast observation plaza under enormous transparent arches. Three recognizable futuristic citizens stand beside the route, enormous ships move in the far distance, a giant ringed planet fills the sky.","x-fal-ui":{"thumbnail_url":"https://fal.ai/worlds-gallery/cinema/38-lingbot-game-first-frame.webp","category":"Cinema collection","thumbnail_alt":"The City Around the Planet","order":1,"tags":["Cinema"]},"name":"The City Around the Planet","payload":{"type":"reset","image_url":"https://v3b.fal.media/files/b/0aad61cf/6EKRQHAhHcRSrpNtMKb7W_yf3Wrho9.png","prompt":"High-end original AAA science-fiction game graphics. Rich physically based materials, cinematic cyan-and-gold light, detailed but readable architecture. An immense orbital city around a ringed planet. A wide unobstructed pedestrian platform leads into a vast observation plaza under enormous transparent arches. Three recognizable futuristic citizens stand beside the route, enormous ships move in the far distance, a giant ringed planet fills the sky. Adult male explorer with dark skin, short silver curls, charcoal armored suit with bright amber shoulder panels and no helmet. Third-person follow camera directly behind the character, complete body clearly visible at lower center, facing away along the open route. Keep the avatar visible and recognizable in every future view. Move smoothly forward together with the avatar; stable upright horizon, no cuts, no first-person conversion. Navigation-ready: minimum six-metre-wide unobstructed level route, floor visible to the vanishing point, all obstacles and other characters beside the path, open large turns, no stairs or narrow doorways."}},{"summary":"Explore a dawn concert installation as light unfolds between harbor structures, sculptural landmarks and old rails.","x-fal-ui":{"thumbnail_url":"https://fal.ai/worlds-gallery/cinema/18-port-industriel-first-frame.webp","category":"Cinema collection","thumbnail_alt":"The Harbor — After the Last Track","order":2,"tags":["Cinema"]},"name":"The Harbor — After the Last Track","payload":{"type":"reset","image_url":"https://v3b.fal.media/files/b/0aad5d9e/8BU9RDth733T0e3F4bu5u_eec5Nqyb.png","prompt":"Photographic reclaimed port architecture with original sculptural concert artwork. Petrol-blue steel, oxidized copper, smoky ivory glass and restrained coral light. Misty pre-dawn backlight, crisp silhouette hierarchy, premium cinematic installation design and visible material age.\nBegin under a decommissioned loading gantry, with human-height camera facing a wide clean service lane. On the right, an original six-meter musician totem combines a black carved mask, brushed copper hands and an ivory folded cape; it is an immobile designed sculpture. A narrow coral light strip follows the embedded rails. Forty meters ahead, the lane opens onto a circular waterfront stage framed by two cranes. Behind the stage, one enormous translucent glass disk catches the dawn, physically supported by a steel ring. Old rope coils and cables remain behind railings, never across the route. The stage, disk and cranes must be visible through the gantry from frame one so the final revelation has geometric continuity.\nNAVIGATION-READY SPATIAL DESIGN: a single physically coherent route, minimum four-metre-wide walkway, floor visible to the vanishing point. Foreground objects belong at the sides, never across the initial camera path. One level floor with no steps in the travel route. Eye-level upright camera, fixed natural field of view and stable horizon. Visible doors are already open and substantially wider than the camera path. Design an open hub after the first straight passage, with large side landmarks visible from the hub; the route ahead remains open through the final reveal. Preserve a consistent spatial layout, lighting and exact material palette in every future view. Characters remain beside the route, not blocking it. No montage or cuts: world navigation is spatially continuous."}},{"summary":"An art deco hotel reveals a monumental aquarium behind its walls. A dry walkway connects the two worlds.","x-fal-ui":{"thumbnail_url":"https://fal.ai/worlds-gallery/cinema/19-hotel-artdeco-first-frame.webp","category":"Cinema collection","thumbnail_alt":"The Hotel Where the Sea Stopped","order":3,"tags":["Cinema"]},"name":"The Hotel Where the Sea Stopped","payload":{"type":"reset","image_url":"https://v3b.fal.media/files/b/0aad5da8/F0oMkP1cvc3ufozI11sGY_azsg8Txz.png","prompt":"Photographic Art Deco architecture with stylized ceramic scenic figures. Celadon stone, warm ivory plaster, aged brass and deep cobalt water behind thick glass. Soft caustic reflections, elegant contrast, restrained grain and precise premium hospitality design.\nInitial camera: eye height in a dry hotel vestibule beneath a low coffered ceiling. Straight ahead, a broad terrazzo corridor connects to a circular lounge. Along the right side, thick curved aquarium glass runs continuously from vestibule to lounge; dark water remains behind it. A ceramic concierge sculpture with an ivory bird head, celadon uniform and coral bell stands behind the left reception desk. It stays a fixed designed figure. A brass handrail and one coral circular floor mosaic guide the route. Farther ahead, the lounge’s tall glass wall reveals a submerged exterior courtyard with fixed stone arches and a large immobile pale shell installation. Dry floor, clear two-meter corridor, no stairs, no water crossing the threshold.\nNAVIGATION-READY SPATIAL DESIGN: a single physically coherent route, minimum four-metre-wide walkway, floor visible to the vanishing point. Foreground objects belong at the sides, never across the initial camera path. One level floor with no steps in the travel route. Eye-level upright camera, fixed natural field of view and stable horizon. Visible doors are already open and substantially wider than the camera path. Design an open hub after the first straight passage, with large side landmarks visible from the hub; the route ahead remains open through the final reveal. Preserve a consistent spatial layout, lighting and exact material palette in every future view. Characters remain beside the route, not blocking it. No montage or cuts: world navigation is spatially continuous."}},{"summary":"A route from the athletes’ tunnel reveals an empty arena built for a light ceremony.","x-fal-ui":{"thumbnail_url":"https://fal.ai/worlds-gallery/cinema/20-ville-pluie-first-frame.webp","category":"Cinema collection","thumbnail_alt":"The Stadium in the Rain — Before the Lights","order":4,"tags":["Cinema"]},"name":"The Stadium in the Rain — Before the Lights","payload":{"type":"reset","image_url":"https://v3b.fal.media/files/b/0aad5db3/Nf3-_53rxhhM8yB93uF6s_Mn5PoHtc.png","prompt":"Photographic stadium architecture and exquisite original ceremonial sculptures. Ink-black rubber floor, coral wayfinding marks, ivory fabric, blue-gray storm light and a single warm sun break. Cinematic scale, strong leading lines and controlled wet reflections.\nStart at human eye level in a wide covered players’ tunnel. The tunnel opens into an empty modern stadium. Two static original ceremonial figures stand in wall niches: long ivory woven coats, sculptural cobalt featherlike helmets and brass batons; they are scenic mannequins, not athletes or named people. A coral line follows the left edge of a clear dry walkway. Beyond the exit, a wide service apron borders the rain-soaked pitch; the far stand carries one enormous ivory fabric spiral supported by a visible truss. Keep the center route free of people, balls, cables and steps. Visible near structural ribs, repeating seat rows and a clearly separate green pitch establish persistent geometry.\nNAVIGATION-READY SPATIAL DESIGN: a single physically coherent route, minimum four-metre-wide walkway, floor visible to the vanishing point. Foreground objects belong at the sides, never across the initial camera path. One level floor with no steps in the travel route. Eye-level upright camera, fixed natural field of view and stable horizon. Visible doors are already open and substantially wider than the camera path. Design an open hub after the first straight passage, with large side landmarks visible from the hub; the route ahead remains open through the final reveal. Preserve a consistent spatial layout, lighting and exact material palette in every future view. Characters remain beside the route, not blocking it. No montage or cuts: world navigation is spatially continuous."}},{"summary":"Explore a starting image from the released camera examples.","x-fal-ui":{"thumbnail_url":"https://raw.githubusercontent.com/robbyant/lingbot-world-v2/1895d300d8ac936401689b26389f51cbd36530eb/examples/03/image.jpg","category":"Exploration","thumbnail_alt":"Lakeside starting image","order":0,"tags":["Camera exploration"]},"name":"Lakeside","payload":{"type":"reset","preset":"lakeside"}},{"summary":"Explore a starting image from the released camera examples.","x-fal-ui":{"thumbnail_url":"https://raw.githubusercontent.com/robbyant/lingbot-world-v2/1895d300d8ac936401689b26389f51cbd36530eb/examples/00/image.jpg","category":"Exploration","thumbnail_alt":"Flying Castle starting image","order":1,"tags":["Camera exploration"]},"name":"Flying Castle","payload":{"type":"reset","preset":"flying-castle"}},{"summary":"Explore a starting image from the released camera examples.","x-fal-ui":{"thumbnail_url":"https://raw.githubusercontent.com/robbyant/lingbot-world-v2/1895d300d8ac936401689b26389f51cbd36530eb/examples/01/image.jpg","category":"Exploration","thumbnail_alt":"Stonehenge starting image","order":2,"tags":["Camera exploration"]},"name":"Stonehenge","payload":{"type":"reset","preset":"stonehenge"}},{"summary":"Explore a starting image from the released camera examples.","x-fal-ui":{"thumbnail_url":"https://raw.githubusercontent.com/robbyant/lingbot-world-v2/1895d300d8ac936401689b26389f51cbd36530eb/examples/02/image.jpg","category":"Exploration","thumbnail_alt":"Urban Exploration starting image","order":3,"tags":["Camera exploration"]},"name":"Urban Exploration","payload":{"type":"reset","preset":"urban-exploration"}},{"summary":"Explore a starting image from the released camera examples.","x-fal-ui":{"thumbnail_url":"https://raw.githubusercontent.com/robbyant/lingbot-world-v2/1895d300d8ac936401689b26389f51cbd36530eb/examples/04/image.jpg","category":"Exploration","thumbnail_alt":"Great Wall starting image","order":4,"tags":["Camera exploration"]},"name":"Great Wall","payload":{"type":"reset","preset":"great-wall"}},{"summary":"Explore a starting image from the released camera examples.","x-fal-ui":{"thumbnail_url":"https://raw.githubusercontent.com/robbyant/lingbot-world-v2/1895d300d8ac936401689b26389f51cbd36530eb/examples/05/image.jpg","category":"Exploration","thumbnail_alt":"Dragon Rider starting image","order":5,"tags":["Camera exploration"]},"name":"Dragon Rider","payload":{"type":"reset","preset":"dragon-rider"}}],"name":"reset","payload":{"$ref":"#/components/schemas/LingBotWorld2ClientWorldResetMessage"}},"server.pong":{"title":"Server pong message","name":"pong","payload":{"$ref":"#/components/schemas/LingBotWorld2ServerPongMessage"}},"server.stream_exhausted":{"title":"Server stream_exhausted message","name":"stream_exhausted","payload":{"$ref":"#/components/schemas/LingBotWorld2ServerStreamExhaustedMessage"}},"client.configure":{"title":"Customize world","summary":"Choose how this world begins.","examples":[{"summary":"A spectacular Mediterranean cliff city above the sea. A broad level stone promenade between terraced gardens leads to an open lookout, with small groups of visitors beside the path, distant boats, warm limestone architecture and immense clear ocean views.","x-fal-ui":{"thumbnail_url":"https://fal.ai/worlds-gallery/cinema/37-lingbot-photo-first-frame.webp","category":"Cinema collection","thumbnail_alt":"The City Above the Sea","order":0,"tags":["Cinema"]},"name":"The City Above the Sea","payload":{"quick_actions":[],"enable_prompt_expansion":true,"image_url":"https://v3b.fal.media/files/b/0aad61cc/2Yx7Ey7Pi2QblGQXyf4yY_XdmbNwp8.png","type":"configure","enable_safety_checker":true,"prompt":"Photorealistic third-person exploration. Natural sunset light, believable stone and vegetation, true photographic materials. A spectacular Mediterranean cliff city above the sea. A broad level stone promenade between terraced gardens leads to an open lookout, with small groups of visitors beside the path, distant boats, warm limestone architecture and immense clear ocean views. Adult woman with warm brown skin, dark curly ponytail, burnt-orange windbreaker, ivory hiking trousers and dark boots. Third-person follow camera directly behind the character, complete body clearly visible at lower center, facing away along the open route. Keep the avatar visible and recognizable in every future view. Move smoothly forward together with the avatar; stable upright horizon, no cuts, no first-person conversion. Navigation-ready: minimum six-metre-wide unobstructed level route, floor visible to the vanishing point, all obstacles and other characters beside the path, open large turns, no stairs or narrow doorways."}},{"summary":"An immense orbital city around a ringed planet. A wide unobstructed pedestrian platform leads into a vast observation plaza under enormous transparent arches. Three recognizable futuristic citizens stand beside the route, enormous ships move in the far distance, a giant ringed planet fills the sky.","x-fal-ui":{"thumbnail_url":"https://fal.ai/worlds-gallery/cinema/38-lingbot-game-first-frame.webp","category":"Cinema collection","thumbnail_alt":"The City Around the Planet","order":1,"tags":["Cinema"]},"name":"The City Around the Planet","payload":{"quick_actions":[],"enable_prompt_expansion":true,"image_url":"https://v3b.fal.media/files/b/0aad61cf/6EKRQHAhHcRSrpNtMKb7W_yf3Wrho9.png","type":"configure","enable_safety_checker":true,"prompt":"High-end original AAA science-fiction game graphics. Rich physically based materials, cinematic cyan-and-gold light, detailed but readable architecture. An immense orbital city around a ringed planet. A wide unobstructed pedestrian platform leads into a vast observation plaza under enormous transparent arches. Three recognizable futuristic citizens stand beside the route, enormous ships move in the far distance, a giant ringed planet fills the sky. Adult male explorer with dark skin, short silver curls, charcoal armored suit with bright amber shoulder panels and no helmet. Third-person follow camera directly behind the character, complete body clearly visible at lower center, facing away along the open route. Keep the avatar visible and recognizable in every future view. Move smoothly forward together with the avatar; stable upright horizon, no cuts, no first-person conversion. Navigation-ready: minimum six-metre-wide unobstructed level route, floor visible to the vanishing point, all obstacles and other characters beside the path, open large turns, no stairs or narrow doorways."}},{"summary":"Explore a dawn concert installation as light unfolds between harbor structures, sculptural landmarks and old rails.","x-fal-ui":{"thumbnail_url":"https://fal.ai/worlds-gallery/cinema/18-port-industriel-first-frame.webp","category":"Cinema collection","thumbnail_alt":"The Harbor — After the Last Track","order":2,"tags":["Cinema"]},"name":"The Harbor — After the Last Track","payload":{"quick_actions":[],"enable_prompt_expansion":true,"image_url":"https://v3b.fal.media/files/b/0aad5d9e/8BU9RDth733T0e3F4bu5u_eec5Nqyb.png","type":"configure","enable_safety_checker":true,"prompt":"Photographic reclaimed port architecture with original sculptural concert artwork. Petrol-blue steel, oxidized copper, smoky ivory glass and restrained coral light. Misty pre-dawn backlight, crisp silhouette hierarchy, premium cinematic installation design and visible material age.\nBegin under a decommissioned loading gantry, with human-height camera facing a wide clean service lane. On the right, an original six-meter musician totem combines a black carved mask, brushed copper hands and an ivory folded cape; it is an immobile designed sculpture. A narrow coral light strip follows the embedded rails. Forty meters ahead, the lane opens onto a circular waterfront stage framed by two cranes. Behind the stage, one enormous translucent glass disk catches the dawn, physically supported by a steel ring. Old rope coils and cables remain behind railings, never across the route. The stage, disk and cranes must be visible through the gantry from frame one so the final revelation has geometric continuity.\nNAVIGATION-READY SPATIAL DESIGN: a single physically coherent route, minimum four-metre-wide walkway, floor visible to the vanishing point. Foreground objects belong at the sides, never across the initial camera path. One level floor with no steps in the travel route. Eye-level upright camera, fixed natural field of view and stable horizon. Visible doors are already open and substantially wider than the camera path. Design an open hub after the first straight passage, with large side landmarks visible from the hub; the route ahead remains open through the final reveal. Preserve a consistent spatial layout, lighting and exact material palette in every future view. Characters remain beside the route, not blocking it. No montage or cuts: world navigation is spatially continuous."}},{"summary":"An art deco hotel reveals a monumental aquarium behind its walls. A dry walkway connects the two worlds.","x-fal-ui":{"thumbnail_url":"https://fal.ai/worlds-gallery/cinema/19-hotel-artdeco-first-frame.webp","category":"Cinema collection","thumbnail_alt":"The Hotel Where the Sea Stopped","order":3,"tags":["Cinema"]},"name":"The Hotel Where the Sea Stopped","payload":{"quick_actions":[],"enable_prompt_expansion":true,"image_url":"https://v3b.fal.media/files/b/0aad5da8/F0oMkP1cvc3ufozI11sGY_azsg8Txz.png","type":"configure","enable_safety_checker":true,"prompt":"Photographic Art Deco architecture with stylized ceramic scenic figures. Celadon stone, warm ivory plaster, aged brass and deep cobalt water behind thick glass. Soft caustic reflections, elegant contrast, restrained grain and precise premium hospitality design.\nInitial camera: eye height in a dry hotel vestibule beneath a low coffered ceiling. Straight ahead, a broad terrazzo corridor connects to a circular lounge. Along the right side, thick curved aquarium glass runs continuously from vestibule to lounge; dark water remains behind it. A ceramic concierge sculpture with an ivory bird head, celadon uniform and coral bell stands behind the left reception desk. It stays a fixed designed figure. A brass handrail and one coral circular floor mosaic guide the route. Farther ahead, the lounge’s tall glass wall reveals a submerged exterior courtyard with fixed stone arches and a large immobile pale shell installation. Dry floor, clear two-meter corridor, no stairs, no water crossing the threshold.\nNAVIGATION-READY SPATIAL DESIGN: a single physically coherent route, minimum four-metre-wide walkway, floor visible to the vanishing point. Foreground objects belong at the sides, never across the initial camera path. One level floor with no steps in the travel route. Eye-level upright camera, fixed natural field of view and stable horizon. Visible doors are already open and substantially wider than the camera path. Design an open hub after the first straight passage, with large side landmarks visible from the hub; the route ahead remains open through the final reveal. Preserve a consistent spatial layout, lighting and exact material palette in every future view. Characters remain beside the route, not blocking it. No montage or cuts: world navigation is spatially continuous."}},{"summary":"A route from the athletes’ tunnel reveals an empty arena built for a light ceremony.","x-fal-ui":{"thumbnail_url":"https://fal.ai/worlds-gallery/cinema/20-ville-pluie-first-frame.webp","category":"Cinema collection","thumbnail_alt":"The Stadium in the Rain — Before the Lights","order":4,"tags":["Cinema"]},"name":"The Stadium in the Rain — Before the Lights","payload":{"quick_actions":[],"enable_prompt_expansion":true,"image_url":"https://v3b.fal.media/files/b/0aad5db3/Nf3-_53rxhhM8yB93uF6s_Mn5PoHtc.png","type":"configure","enable_safety_checker":true,"prompt":"Photographic stadium architecture and exquisite original ceremonial sculptures. Ink-black rubber floor, coral wayfinding marks, ivory fabric, blue-gray storm light and a single warm sun break. Cinematic scale, strong leading lines and controlled wet reflections.\nStart at human eye level in a wide covered players’ tunnel. The tunnel opens into an empty modern stadium. Two static original ceremonial figures stand in wall niches: long ivory woven coats, sculptural cobalt featherlike helmets and brass batons; they are scenic mannequins, not athletes or named people. A coral line follows the left edge of a clear dry walkway. Beyond the exit, a wide service apron borders the rain-soaked pitch; the far stand carries one enormous ivory fabric spiral supported by a visible truss. Keep the center route free of people, balls, cables and steps. Visible near structural ribs, repeating seat rows and a clearly separate green pitch establish persistent geometry.\nNAVIGATION-READY SPATIAL DESIGN: a single physically coherent route, minimum four-metre-wide walkway, floor visible to the vanishing point. Foreground objects belong at the sides, never across the initial camera path. One level floor with no steps in the travel route. Eye-level upright camera, fixed natural field of view and stable horizon. Visible doors are already open and substantially wider than the camera path. Design an open hub after the first straight passage, with large side landmarks visible from the hub; the route ahead remains open through the final reveal. Preserve a consistent spatial layout, lighting and exact material palette in every future view. Characters remain beside the route, not blocking it. No montage or cuts: world navigation is spatially continuous."}},{"summary":"Explore a starting image from the released camera examples.","x-fal-ui":{"thumbnail_url":"https://raw.githubusercontent.com/robbyant/lingbot-world-v2/1895d300d8ac936401689b26389f51cbd36530eb/examples/03/image.jpg","category":"Exploration","thumbnail_alt":"Lakeside starting image","order":0,"tags":["Camera exploration"]},"name":"Lakeside","payload":{"quick_actions":[],"enable_prompt_expansion":true,"type":"configure","preset":"lakeside","enable_safety_checker":true}},{"summary":"Explore a starting image from the released camera examples.","x-fal-ui":{"thumbnail_url":"https://raw.githubusercontent.com/robbyant/lingbot-world-v2/1895d300d8ac936401689b26389f51cbd36530eb/examples/00/image.jpg","category":"Exploration","thumbnail_alt":"Flying Castle starting image","order":1,"tags":["Camera exploration"]},"name":"Flying Castle","payload":{"quick_actions":[],"enable_prompt_expansion":true,"type":"configure","preset":"flying-castle","enable_safety_checker":true}},{"summary":"Explore a starting image from the released camera examples.","x-fal-ui":{"thumbnail_url":"https://raw.githubusercontent.com/robbyant/lingbot-world-v2/1895d300d8ac936401689b26389f51cbd36530eb/examples/01/image.jpg","category":"Exploration","thumbnail_alt":"Stonehenge starting image","order":2,"tags":["Camera exploration"]},"name":"Stonehenge","payload":{"quick_actions":[],"enable_prompt_expansion":true,"type":"configure","preset":"stonehenge","enable_safety_checker":true}},{"summary":"Explore a starting image from the released camera examples.","x-fal-ui":{"thumbnail_url":"https://raw.githubusercontent.com/robbyant/lingbot-world-v2/1895d300d8ac936401689b26389f51cbd36530eb/examples/02/image.jpg","category":"Exploration","thumbnail_alt":"Urban Exploration starting image","order":3,"tags":["Camera exploration"]},"name":"Urban Exploration","payload":{"quick_actions":[],"enable_prompt_expansion":true,"type":"configure","preset":"urban-exploration","enable_safety_checker":true}},{"summary":"Explore a starting image from the released camera examples.","x-fal-ui":{"thumbnail_url":"https://raw.githubusercontent.com/robbyant/lingbot-world-v2/1895d300d8ac936401689b26389f51cbd36530eb/examples/04/image.jpg","category":"Exploration","thumbnail_alt":"Great Wall starting image","order":4,"tags":["Camera exploration"]},"name":"Great Wall","payload":{"quick_actions":[],"enable_prompt_expansion":true,"type":"configure","preset":"great-wall","enable_safety_checker":true}},{"summary":"Explore a starting image from the released camera examples.","x-fal-ui":{"thumbnail_url":"https://raw.githubusercontent.com/robbyant/lingbot-world-v2/1895d300d8ac936401689b26389f51cbd36530eb/examples/05/image.jpg","category":"Exploration","thumbnail_alt":"Dragon Rider starting image","order":5,"tags":["Camera exploration"]},"name":"Dragon Rider","payload":{"quick_actions":[],"enable_prompt_expansion":true,"type":"configure","preset":"dragon-rider","enable_safety_checker":true}}],"name":"configure","payload":{"$ref":"#/components/schemas/LingBotWorld2ClientConfigureMessage"}},"server.reset_applied":{"title":"Server reset_applied message","name":"reset_applied","payload":{"$ref":"#/components/schemas/LingBotWorld2ServerResetAppliedMessage"}},"client.quick_actions":{"title":"Quick actions","summary":"Map number keys to actions; hold a key to perform its action.","examples":[{"summary":"Map dragon-rider actions to keys 1-3.","name":"dragon-rider-quick-actions","payload":{"type":"quick_actions","actions":[{"title":"Breathe fire","description":"The dragon rears its head and breathes a roaring torrent of fire ahead.","key":1},{"title":"Roar","description":"The dragon throws its head back and roars, scattering birds from the canopy.","key":2},{"title":"Beat wings","description":"The dragon beats its huge wings, whipping up a storm of leaves from the trees below.","key":3}]}}],"name":"quick_actions","payload":{"$ref":"#/components/schemas/LingBotWorld2ClientQuickActionsMessage"}},"client.keys":{"title":"Client keys message","name":"keys","payload":{"$ref":"#/components/schemas/LingBotWorld2ClientKeysMessage"}},"client.stop":{"title":"End session","name":"stop","payload":{"$ref":"#/components/schemas/LingBotWorld2ClientStopMessage"}},"client.prompt":{"title":"Update world","summary":"Change the world description as you explore.","examples":[{"name":"follow-the-path","payload":{"type":"prompt","prompt":"A serene lakeside scene with a lone tree standing in calm water, surrounded by distant snow-capped mountains under a bright blue sky with drifting white clouds. Gentle ripples reflect the tree and sky."}}],"name":"prompt","payload":{"$ref":"#/components/schemas/LingBotWorld2ClientWorldPromptMessage"}},"server.quick_actions_state":{"title":"Server quick_actions_state message","name":"quick_actions_state","payload":{"$ref":"#/components/schemas/LingBotWorld2ServerQuickActionsStateMessage"}},"server.configured":{"title":"Server configured message","name":"configured","payload":{"$ref":"#/components/schemas/LingBotWorld2ServerConfiguredMessage"}},"client.ping":{"title":"Client ping message","name":"ping","payload":{"$ref":"#/components/schemas/LingBotWorld2ClientPingMessage"}},"client.commands":{"title":"Movement","summary":"Move through the world and look around.","examples":[{"name":"move-forward","payload":{"active":["forward"],"activated":[],"type":"commands"}},{"name":"hold-quick-action","payload":{"active":["quick_action_1"],"activated":[],"type":"commands"}}],"name":"commands","payload":{"$ref":"#/components/schemas/LingBotWorld2ClientWorldCommandsMessage"}},"server.prompt_applied":{"title":"Server prompt_applied message","name":"prompt_applied","payload":{"$ref":"#/components/schemas/LingBotWorld2ServerPromptAppliedMessage"}},"server.session_info":{"title":"Server session_info message","name":"session_info","payload":{"$ref":"#/components/schemas/LingBotWorld2ServerSessionInfoMessage"}},"server.stats":{"title":"Server stats message","name":"stats","payload":{"$ref":"#/components/schemas/LingBotWorld2ServerStatsMessage"}}},"schemas":{"LingBotWorld2ClientPingMessage":{"description":"Latency probe; the server echoes ``ts`` back in a ``pong`` payload.","required":["type"],"type":"object","title":"PingMessage","properties":{"type":{"title":"Type","const":"ping","type":"string"},"ts":{"title":"Ts","anyOf":[{"type":"number"},{"type":"null"}],"default":null}}},"LingBotWorld2ServerQuickActionsStateMessage":{"description":"The quick-action mapping and which actions are ready to use.","required":["type","actions"],"type":"object","title":"QuickActionsStateMessage","properties":{"type":{"title":"Type","const":"quick_actions_state","type":"string","default":"quick_actions_state"},"actions":{"title":"Actions","type":"array","items":{"$ref":"#/components/schemas/LingBotWorld2ServerQuickActionState"}}}},"LingBotWorld2ClientConfigureMessage":{"description":"Optionally replace the automatic default world, once per connection.\n\nAwait ``configured`` before submitting more controls. Use ``reset`` for\nsubsequent restarts. Image URL takes precedence over the preset. Safety,\nprompt expansion, and the initial quick actions apply to the whole session.","required":["type"],"type":"object","title":"ConfigureMessage","properties":{"quick_actions":{"description":"Up to nine actions, each on its own number key.","title":"Quick actions","x-fal-ui":{"order":5},"type":"array","maxItems":9,"items":{"$ref":"#/components/schemas/LingBotWorld2ClientQuickAction"}},"enable_prompt_expansion":{"description":"Rewrite world descriptions, updates, and quick actions into detailed interactive prompts with an LLM.","title":"Prompt expansion","x-fal-ui":{"order":3},"type":"boolean","default":true},"image_url":{"description":"Use your own image instead of a built-in world.","title":"Starting image","x-fal-ui":{"field":"image","order":2},"anyOf":[{"type":"string","maxLength":4096},{"type":"null"}],"default":null},"preset":{"description":"Choose a built-in world, or provide a starting image below.","title":"Starting world","examples":["lakeside","flying-castle","stonehenge","urban-exploration","great-wall","dragon-rider"],"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"x-fal-ui":{"hidden":true,"order":0},"default":null},"enable_safety_checker":{"description":"Screen prompts and images with standard thresholds. When disabled, only illegal content is blocked.","title":"Safety checker","x-fal-ui":{"advanced":true,"order":4},"type":"boolean","default":true},"prompt":{"description":"Optionally replace the starting world's description.","title":"World description","x-fal-ui":{"field":"textarea","order":1},"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"default":null},"type":{"title":"Type","const":"configure","x-fal-ui":{"hidden":true},"type":"string","default":"configure"}}},"LingBotWorld2ServerPresetInfo":{"title":"PresetInfo","required":["name","prompt"],"type":"object","properties":{"name":{"title":"Name","type":"string"},"prompt":{"title":"Prompt","type":"string"}}},"LingBotWorld2ServerPromptAppliedMessage":{"title":"PromptAppliedMessage","required":["type","prompt"],"type":"object","properties":{"type":{"title":"Type","const":"prompt_applied","type":"string","default":"prompt_applied"},"prompt":{"description":"World description now in effect, after any prompt expansion.","title":"Prompt","type":"string"}}},"LingBotWorld2ServerPongMessage":{"description":"Reply to a ``ping``, echoing the client's timestamp for RTT measurement.\n\nThe echoed timestamp has two wire spellings: apps that handle ``ping``\nthemselves echo ``ts``; the fallback handler in\n:class:`registry.wma.sdk.Session` replies with ``client_ts``. Clients read\nwhichever is present. ``server_ts`` is the (unsynchronized) runner clock; it\nonly shows how the round trip divides once the client has an offset estimate.","required":["type"],"type":"object","title":"PongMessage","properties":{"type":{"title":"Type","const":"pong","type":"string","default":"pong"},"server_ts":{"title":"Server Ts","anyOf":[{"type":"number"},{"type":"null"}],"default":null},"client_ts":{"title":"Client Ts","anyOf":[{"type":"number"},{"type":"null"}],"default":null},"ts":{"title":"Ts","anyOf":[{"type":"number"},{"type":"null"}],"default":null}}},"LingBotWorld2ClientWorldPromptMessage":{"title":"WorldPromptMessage","required":["type","prompt"],"type":"object","properties":{"type":{"title":"Type","const":"prompt","x-fal-ui":{"hidden":true},"type":"string","default":"prompt"},"prompt":{"description":"Change the scene's description while continuing this world.","title":"World description","minLength":1,"maxLength":2000,"type":"string","x-fal-ui":{"field":"textarea","order":0}}}},"LingBotWorld2ServerResetAppliedMessage":{"title":"ResetAppliedMessage","required":["type","prompt"],"type":"object","properties":{"type":{"title":"Type","const":"reset_applied","type":"string","default":"reset_applied"},"prompt":{"description":"World description now in effect, after any prompt expansion.","title":"Prompt","type":"string"}}},"LingBotWorld2ServerConfiguredMessage":{"title":"ConfiguredMessage","required":["type","prompt","enable_safety_checker","enable_prompt_expansion"],"type":"object","properties":{"enable_prompt_expansion":{"title":"Enable Prompt Expansion","type":"boolean"},"type":{"title":"Type","const":"configured","type":"string","default":"configured"},"enable_safety_checker":{"description":"Whether standard screening is in effect for this session.","title":"Enable Safety Checker","type":"boolean"},"prompt":{"description":"World description now in effect, after any prompt expansion.","title":"Prompt","type":"string"}}},"LingBotWorld2ServerResolutionInfo":{"title":"ResolutionInfo","required":["width","height"],"type":"object","properties":{"height":{"title":"Height","type":"integer"},"width":{"title":"Width","type":"integer"}}},"LingBotWorld2ServerStatsMessage":{"title":"StatsMessage","required":["type","block_index","block_seconds","generation_fps","gpu_wait_frac","queue_age_ms_p50","queue_age_ms_max","pace_sleep_ms_avg","queue_depth"],"type":"object","properties":{"queue_age_ms_p50":{"title":"Queue Age Ms P50","type":"number"},"native_timing":{"title":"Native Timing","anyOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"number"},{"type":"integer"}]}},{"type":"null"}],"default":null},"queue_age_ms_max":{"title":"Queue Age Ms Max","type":"number"},"generation_fps":{"title":"Generation Fps","type":"number"},"type":{"title":"Type","const":"stats","type":"string","default":"stats"},"block_seconds":{"title":"Block Seconds","type":"number"},"gpu_wait_frac":{"title":"Gpu Wait Frac","type":"number"},"pace_sleep_ms_avg":{"title":"Pace Sleep Ms Avg","type":"number"},"block_index":{"title":"Block Index","type":"integer"},"queue_depth":{"title":"Queue Depth","type":"integer"}}},"LingBotWorld2ClientWorldCommandsMessage":{"description":"Semantic command-state report.\n\n``active`` contains commands currently held by the user and ``activated``\ncontains edge-triggered commands since the previous report. A browser may\nmap a keyboard, gamepad, touch control, or agent action to these names.","required":["type"],"x-fal-ui":{"conflictGroups":[["forward","backward"],["left","right"],["look_up","look_down"],["look_left","look_right"]]},"title":"WorldCommandsMessage","type":"object","properties":{"active":{"title":"Active","type":"array","maxItems":17,"items":{"type":"string","enum":["forward","left","backward","right","look_up","look_left","look_down","look_right","quick_action_1","quick_action_2","quick_action_3","quick_action_4","quick_action_5","quick_action_6","quick_action_7","quick_action_8","quick_action_9"]}},"activated":{"title":"Activated","type":"array","maxItems":17,"items":{"type":"string","enum":["forward","left","backward","right","look_up","look_left","look_down","look_right","quick_action_1","quick_action_2","quick_action_3","quick_action_4","quick_action_5","quick_action_6","quick_action_7","quick_action_8","quick_action_9"]}},"type":{"title":"Type","const":"commands","type":"string"}}},"LingBotWorld2ClientQuickActionsMessage":{"description":"Replace the whole quick-action mapping; keys left out are un-mapped.\n\nAn action changes generation once ``quick_actions_state`` reports it ready.","required":["type","actions"],"type":"object","title":"QuickActionsMessage","properties":{"type":{"title":"Type","const":"quick_actions","x-fal-ui":{"hidden":true},"type":"string","default":"quick_actions"},"actions":{"description":"Up to nine actions, each on its own number key.","title":"Quick actions","type":"array","maxItems":9,"items":{"$ref":"#/components/schemas/LingBotWorld2ClientQuickAction"}}}},"LingBotWorld2ClientStopMessage":{"title":"StopMessage","required":["type"],"type":"object","properties":{"type":{"title":"Type","const":"stop","x-fal-ui":{"hidden":true},"type":"string","default":"stop"}},"additionalProperties":false},"LingBotWorld2ClientWorldResetMessage":{"title":"WorldResetMessage","required":["type"],"type":"object","properties":{"type":{"title":"Type","const":"reset","x-fal-ui":{"hidden":true},"type":"string","default":"reset"},"image_url":{"description":"Use your own image instead of a built-in world.","title":"Starting image","x-fal-ui":{"field":"image","order":2},"anyOf":[{"type":"string","maxLength":4096},{"type":"null"}],"default":null},"preset":{"description":"Choose a built-in world, or provide a starting image below.","title":"Starting world","examples":["lakeside","flying-castle","stonehenge","urban-exploration","great-wall","dragon-rider"],"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"x-fal-ui":{"hidden":true,"order":0},"default":null},"prompt":{"description":"Optionally replace the starting world's description.","title":"World description","x-fal-ui":{"field":"textarea","order":1},"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"default":null}}},"LingBotWorld2ClientKeysMessage":{"deprecated":true,"required":["type"],"type":"object","title":"KeysMessage","description":"Legacy physical-key report retained for existing WMA clients.","properties":{"pressed":{"title":"Pressed","type":"array","maxItems":32,"items":{"type":"string"}},"activated":{"title":"Activated","type":"array","maxItems":32,"items":{"type":"string"}},"type":{"title":"Type","const":"keys","type":"string"}}},"LingBotWorld2ServerStreamExhaustedMessage":{"description":"The model has no more frames to send and the current peer is closing.\nClients must negotiate a new session to continue.","required":["type"],"type":"object","title":"StreamExhaustedMessage","properties":{"type":{"title":"Type","const":"stream_exhausted","type":"string","default":"stream_exhausted"}}},"LingBotWorld2ServerQuickActionState":{"title":"QuickActionState","required":["key","title","ready"],"type":"object","properties":{"title":{"title":"Title","type":"string"},"ready":{"description":"Holding the key changes generation.","title":"Ready","type":"boolean"},"key":{"title":"Key","type":"integer"},"prompt":{"description":"Prompt attended while the key is held.","title":"Prompt","anyOf":[{"type":"string"},{"type":"null"}],"default":null}}},"LingBotWorld2ServerControlErrorMessage":{"title":"ControlErrorMessage","required":["type","error"],"type":"object","properties":{"type":{"title":"Type","const":"error","type":"string","default":"error"},"retryable":{"description":"Whether retrying unchanged input may succeed; absent if unspecified.","title":"Retryable","anyOf":[{"type":"boolean"},{"type":"null"}],"default":null},"error":{"title":"Error","type":"string"}}},"LingBotWorld2ServerSessionInfoMessage":{"title":"SessionInfoMessage","required":["type","model_id","model_revision","resolution","frames_per_second","frames_per_block","max_blocks","key_order","conflict_groups","default_prompt","presets","turn","turn_status"],"type":"object","properties":{"model_variant":{"title":"Model Variant","const":"14b-causal-fast","type":"string","default":"14b-causal-fast"},"model_revision":{"title":"Model Revision","type":"string"},"max_blocks":{"title":"Max Blocks","type":"integer"},"source_revision":{"title":"Source Revision","type":"string","default":"1895d300d8ac936401689b26389f51cbd36530eb"},"pixel_frames_per_block":{"title":"Pixel Frames Per Block","type":"integer","default":12},"model_id":{"title":"Model Id","type":"string"},"max_quick_actions":{"title":"Max Quick Actions","type":"integer","default":9},"default_prompt":{"title":"Default Prompt","type":"string"},"first_block_pixel_frames":{"title":"First Block Pixel Frames","type":"integer","default":9},"presets":{"title":"Presets","type":"array","items":{"$ref":"#/components/schemas/LingBotWorld2ServerPresetInfo"}},"type":{"title":"Type","const":"session_info","type":"string","default":"session_info"},"frames_per_second":{"title":"Frames Per Second","type":"number"},"quick_action_keys":{"title":"Quick Action Keys","type":"array","items":{"type":"string"}},"unsupported_features":{"title":"Unsupported Features","type":"array","items":{"type":"string"}},"resolution":{"$ref":"#/components/schemas/LingBotWorld2ServerResolutionInfo"},"key_order":{"title":"Key Order","type":"array","items":{"type":"string"}},"conflict_groups":{"title":"Conflict Groups","type":"array","items":{"type":"array","items":{"type":"string"}}},"supported_controls":{"title":"Supported Controls","type":"array","items":{"type":"string"}},"turn":{"title":"Turn","type":"boolean"},"generation_speed_verified":{"title":"Generation Speed Verified","type":"boolean","default":false},"turn_status":{"title":"Turn Status","type":"string"},"frames_per_block":{"title":"Frames Per Block","type":"integer"}}},"LingBotWorld2ClientQuickAction":{"description":"One action performed while its number key is held.","required":["key","title","description"],"type":"object","title":"QuickAction","properties":{"title":{"description":"Label shown next to the action's button.","title":"Title","minLength":1,"maxLength":40,"type":"string","x-fal-ui":{"order":1}},"description":{"description":"What happens while the key is held; combined with the world description.","title":"Action","minLength":1,"maxLength":1000,"type":"string","x-fal-ui":{"field":"textarea","order":2}},"key":{"description":"Number key (1-9) that performs this action while held.","minimum":1,"x-fal-ui":{"order":0},"maximum":9,"type":"integer","title":"Key"}}}}},"x-fal-wma":{"commandWorld":{"setup":{"replay":"never","limit":"once-per-session","applied":{"$ref":"#/channels/control/messages/server.configured"},"message":{"$ref":"#/channels/control/messages/client.configure"}},"errors":{"descriptionField":"/error","message":{"$ref":"#/channels/control/messages/server.error"}},"reset":{"payloadTemplate":{"type":"reset"},"message":{"$ref":"#/channels/control/messages/client.reset"},"replay":"never","policy":"serial","applied":{"$ref":"#/channels/control/messages/server.reset_applied"},"inputField":"/prompt"},"commands":{"activatedField":"/activated","stateField":"/active","message":{"$ref":"#/channels/control/messages/client.commands"}},"ready":"first-frame","stop":{"$ref":"#/channels/control/messages/client.stop"},"startup":"automatic","updates":{"payloadTemplate":{"type":"prompt"},"message":{"$ref":"#/channels/control/messages/client.prompt"},"replay":"never","policy":"serial","applied":{"$ref":"#/channels/control/messages/server.prompt_applied"},"inputField":"/prompt"}},"requiredFeatures":["command-world/1"],"perspective":"client","profileVersion":"0.1","ended":{"$ref":"#/channels/control/messages/server.stream_exhausted"}},"channels":{"control":{"messages":{"server.error":{"$ref":"#/components/messages/server.error"},"client.reset":{"$ref":"#/components/messages/client.reset"},"server.pong":{"$ref":"#/components/messages/server.pong"},"server.stream_exhausted":{"$ref":"#/components/messages/server.stream_exhausted"},"client.configure":{"$ref":"#/components/messages/client.configure"},"server.reset_applied":{"$ref":"#/components/messages/server.reset_applied"},"client.quick_actions":{"$ref":"#/components/messages/client.quick_actions"},"client.keys":{"$ref":"#/components/messages/client.keys"},"client.stop":{"$ref":"#/components/messages/client.stop"},"client.prompt":{"$ref":"#/components/messages/client.prompt"},"server.quick_actions_state":{"$ref":"#/components/messages/server.quick_actions_state"},"server.configured":{"$ref":"#/components/messages/server.configured"},"client.ping":{"$ref":"#/components/messages/client.ping"},"client.commands":{"$ref":"#/components/messages/client.commands"},"server.prompt_applied":{"$ref":"#/components/messages/server.prompt_applied"},"server.session_info":{"$ref":"#/components/messages/server.session_info"},"server.stats":{"$ref":"#/components/messages/server.stats"}},"address":"fal","servers":[{"$ref":"#/servers/session"}]}},"x-fal-openapi":{"url":"./openapi.json","operationId":"start_session_start_session_post"},"defaultContentType":"application/json","x-fal-media":{"send":[],"perspective":"client","receive":[{"settings":{"height":960,"frameRate":48,"width":1664},"kind":"video"}]},"operations":{"receiveEvents":{"messages":[{"$ref":"#/channels/control/messages/server.configured"},{"$ref":"#/channels/control/messages/server.error"},{"$ref":"#/channels/control/messages/server.pong"},{"$ref":"#/channels/control/messages/server.prompt_applied"},{"$ref":"#/channels/control/messages/server.quick_actions_state"},{"$ref":"#/channels/control/messages/server.reset_applied"},{"$ref":"#/channels/control/messages/server.session_info"},{"$ref":"#/channels/control/messages/server.stats"},{"$ref":"#/channels/control/messages/server.stream_exhausted"}],"channel":{"$ref":"#/channels/control"},"action":"receive"},"sendControl":{"messages":[{"$ref":"#/channels/control/messages/client.commands"},{"$ref":"#/channels/control/messages/client.configure"},{"$ref":"#/channels/control/messages/client.keys"},{"$ref":"#/channels/control/messages/client.ping"},{"$ref":"#/channels/control/messages/client.prompt"},{"$ref":"#/channels/control/messages/client.quick_actions"},{"$ref":"#/channels/control/messages/client.reset"},{"$ref":"#/channels/control/messages/client.stop"}],"channel":{"$ref":"#/channels/control"},"action":"send"}}}