fal Worlds: Walkable World Models Over WebRTC

Introduction
fal just launched fal Worlds, a browser showcase where you walk through AI-generated worlds as they stream. Alongside it come two new realtime endpoints you can call from your own app today: Lingbot World 2 (Robbyant) and Abot World 0 (AMAP CV Lab). Both are image-to-world models. You give them a starting image or a built-in preset, then steer with WASD-style movement and camera commands while video streams back over WebRTC. Both run on fal's World Model Accelerator (WMA), and both bill at $0.00125 per compute second.
Neither model is new. Both have had open weights since July. What changed overnight is that you no longer need a multi-GPU rig or a third-party demo to put one in front of players: it's one hosted session with a documented control contract.
What shipped
- Launch: at 18:12 UTC on Oct 15 (02:12 MYT Oct 16): "Build characters, explore environments, direct scenes, and watch worlds respond to your actions." The landing page is at fal.ai/worlds
- Endpoints:
fal-ai/lingbot-world-2/start-sessionandfal-ai/abot-world-0/start-session, both listed in fal's catalog at 19:58 UTC on Oct 15. Both are tagged worlds, world-model, realtime, interactive, walkable, explorable - Modality: image → interactive video world. Movement and look controls go in, a live video track comes out
- Open vs API: this is a hosted API on fal. The weights behind it are open: LingBot-World v2 is CC BY-NC-SA 4.0, which fal labels research, and ABot-World-0-5B-LF is Apache 2.0, which fal labels commercial
- Where to run today: the fal Worlds playground (sign in to fal), or your own web app through the alpha JS client. fal's WMA docs call the whole layer experimental, so pin your SDK versions
- Price: $0.00125 per compute second on both endpoints. That works out to about $4.50 per hour of session compute
The two worlds, side by side
Lingbot World 2Abot World 0
Vendor
Robbyant
AMAP CV Lab (acvlab)
Stream on fal
1664×960, 48 fps video track
1280×704, 16 fps video track
Controls
forward / left / backward / right, look up / down / left / right, plus up to 9 quick actions on number keys
the same 8 movement and look controls
Extras
LLM prompt expansion (on by default), safety checker toggle
preset, prompt or image only
Weights license
CC BY-NC-SA 4.0 (non-commercial)
Apache 2.0
Self-host reference
14B causal-fast at 480p on 8 GPUs; 1.3B on 4 GPUs
720p at 16 fps on one RTX 5090, 1.2 s latency, 19 GB
The self-host numbers come from each project's own README. Robbyant says it will not release its deployment code and points to the SGLang and NVIDIA flashdreams recipes instead, which is a big reason a hosted endpoint matters here. ABot-World-0 builds on Wan2.2-TI2V-5B.
Wiring it into a game prototype
Do not call these with fal.run, fal.subscribe or the queue API. Open a realtime session instead, and keep FAL_KEY behind a server proxy:
npm install @fal-ai/client@alpha @fal-ai/server-proxy@alphaimport { createFalClient } from "@fal-ai/client";
import { wma } from "@fal-ai/client/realtime";
const fal = createFalClient({ proxyUrl: "/api/fal/proxy" });
const session = fal.realtime.open(wma("fal-ai/lingbot-world-2"), {
receive: ["video"],
onMedia: (stream) => { document.querySelector("video")!.srcObject = stream; },
onData: (raw) => console.log(JSON.parse(raw)),
});The world starts on its own. Wait for the first frame, then send held keys in active and fresh presses in activated. Send empty arrays when the player lets go:
{ "type": "commands", "active": ["forward"], "activated": [] }Other messages you get on the same data channel:
configure(once per session): apreset, aprompt(up to 2,000 chars) or your ownimage_url. On Lingbot this is also wherequick_actionsgo: up to nine, each with a key from 1–9, a title of up to 40 chars and a description of up to 1,000 charsprompt: rewrites the scene while the same world keeps runningresetandstop: restart the world or end the session. The server sendsstream_exhaustedwhen it runs out of frames, and you open a new session to continuestats: per-block telemetry such asgeneration_fps,queue_depthandgpu_wait_frac. Use it to show players an honest latency readout
fal's own example prompts show the house style for these models: a third-person follow camera, "complete body clearly visible at lower center", and a "navigation-ready" route at least six metres wide, with no stairs or narrow doorways. Treat that as the safe envelope. These are video world models, not physics engines.
If you want to host your own world model the same way, WMA's Python side (fal.wma.App) needs fal 1.81.4 or later and Pydantic 2. fal's WMA page says it's accepting partners for the first wave of production world models.
Caveats
- Experimental transport. fal says the WMA API can change, so pin
@alphaclient versions in anything you ship - License split. Lingbot's weights are non-commercial. If you're prototyping a commercial game loop, Abot World 0 (Apache 2.0) is the cleaner path
- Not a new model drop. Both models have been public since July and have run on other hosted demos. The news is fal's endpoints, the per-second price, and a documented control schema
- fal also listed H3 Max Reference Director (
minimax/h3-max/reference-director) the same night, for steering a continuous world with image references. That one is directed video rather than walkable movement
Original Source
https://fal.ai/models/fal-ai/lingbot-world-2/start-session
https://fal.ai/models/fal-ai/abot-world-0/start-session
https://fal.ai/docs/documentation/development/wma
Conclusion
fal Worlds turns two open world models into something a game prototyper can actually call: one WebRTC session, eight movement verbs, up to nine scripted actions, and a per-second bill. Start with Abot World 0 if you need commercial terms, use Lingbot World 2 if you want higher frame rates and quick actions for research builds, and pin the alpha SDK before you build a level around it.
—Titus
