Meet in a shared room.
Run a development room and open it in a second browser profile. Explore the same place and interact with shared objects.
Multiplayer & roomsLight, landscape, behavior, and shared state belong to the same place. Dusk brings those systems together, with a browser player and tools built on the same foundation.
Compose a landscape with terrain, foliage, and water. Bring in GLB models, arrange physically based materials, and set the mood with skies, local lights, shadows, particles, and weather.

Give a place things to do: move a character, ride a vehicle, navigate an NPC, or connect an interaction through a saved behavior graph. Work in the atelier or define the world in TypeScript.

Multiplayer rooms, shared objects, chat, and persistent state make a world something people can return to together.
Run a development room and open it in a second browser profile. Explore the same place and interact with shared objects.
Multiplayer & roomsWorld state, checkpoints, and recovery are explicit systems. Persistent-room services and retained releases preserve the context of a place.
Persistent roomsPortals, room routing, and travel contracts connect hosted places. Read the implementation scope before designing a larger world.
World travelDusk is independently implemented in TypeScript. Games supply their worlds, characters, controls, sound, and story through explicit contracts. Engine packages never import games.
Compile and validate content into a portable game document. Publish an invitation from the atelier, or use Dusk’s player and room services. Published invitations retain their exact engine build.
Docker profiles, persistent storage, optional PostgreSQL services, and a Coolify guide are included. Public WebGPU access requires HTTPS.
A browser, an idea, and the tools to connect them.