Ulric
Book a call

Eugene, Oregon · one person, whole builds

Insights

World Labs Atlas, and what a world model gives a web studio

World Labs Atlas, and what a world model gives a web studio

World Labs announced Atlas on 1 September 2026, and I cannot use it. No public API, no published price, no paper, no model card, no frame rate. Access is a request form and an unnamed list of partners. What is available today is the product Atlas is meant to power, plus a small MIT-licensed renderer that puts its output into a web page, and for a studio my size that pair is the part worth reading closely.

What did World Labs actually announce?

An omni world model: one network pretrained from scratch on text, images, video and 3D, which generates, reconstructs and simulates spaces instead of only producing clips. The headline capability is camera control, and the announcement post is exact about the number:

Atlas generates images and videos from one or more images with pixel-perfect camera control, outputting up to 1 minute of video at 1440p.

Camera geometry goes in as a native input type rather than as adjectives in a prompt. The same post frames what that changes: "you are staging the scene, not pulling the lever of a slot machine." Atlas also emits point clouds, depth maps, 3D Gaussian splats and 360 panoramas, and takes one to over a hundred input images. The architecture disclosure is four words long: multimodal autoregressive diffusion transformer. No parameter count, no training compute, no audio claim, no fps.

The honest boundary is this. Atlas is an announcement with a demo page and a request form. Everything below the announcement, the pricing, the file formats, the renderer, is real and shipping, which is why the rest of this post is mostly about Marble and Spark.

How is a world model different from a video model?

A video model hands back pixels. A world model keeps a representation of the space those pixels came from, and can hand you geometry. That is the whole practical difference for a web page: geometry is a file, pixels are a render.

World Labs published two evaluations. On 3D reconstruction from sparse views, Atlas reports a mean absolute-relative pointmap error of 25.3 (times ten to the minus three) averaged across seven benchmarks, against 28.7 for Pi3X and 36.4 for VGGT-Omega 1B. On camera-controlled generation, third-party raters preferred Atlas over MiniMax H3 in 75% of votes and over Gemini Omni Flash in 81%.

Read that second number next to how it was produced. Atlas received the camera path in its native camera format; every baseline received the same path described in words, because none of them accept cameras as input. World Labs says so plainly in the post. So the study measures camera-following, not image quality, motion, audio, speed or cost, and it is self-run and unreplicated. I could not find Atlas on any independent video leaderboard, which is unsurprising for a model nobody outside the partner list can call. Worth knowing before anyone quotes 75% at you as a general quality claim.

What can a small studio actually buy today?

Marble, generally available since November 2025, priced per world. The World API pricing page is one of the more honest vendor pages I have read this year: it publishes the credit cost of every usage event, then the observed distribution of real charges rather than a marketing average.

A four-stage flow from left to right. Stage one, inputs: Marble takes a text prompt, one image, multi-image, video, a 360 panorama or a coarse 3D layout, while Atlas takes text, one to over a hundred images, camera poses as a native input type, and 3D depth maps. Stage two, the model: the World API charges one dollar per 1,250 credits with a five dollar minimum, 1,500 credits for a world generation and 150 for a draft, with marble-1.1-plus showing an observed median of $1.28 per world and a 90th percentile of $2.46; Atlas has no public API, no price and no paper. Stage three, exports: SPZ at about two million splats or a low-resolution SPZ at about 500,000, the same two tiers in PLY, a collider mesh GLB of 100 to 200 thousand triangles, a high-quality mesh GLB of about 600 thousand textured triangles for 3,500 credits or $2.80, and an equirectangular panorama PNG at 2560 by 1280; Atlas adds up to a minute of 1440p video plus point clouds and depth maps. Stage four, your page: Spark 2.1.0 under MIT with three.js 0.180 on WebGL2, reading PLY, SPZ, SPLAT, KSPLAT and SOG; consumer devices render one to five million splats at interactive frame rates. A highlighted note at the bottom explains that exports arrive in OpenCV axes and that scaling Y and Z by minus one is what the quaternion.set(1, 0, 0, 0) line in Spark's starter file does.

The credit table is short enough to quote in full:

Pano generation (image, pano)        0
Pano generation (text)              80
Pano generation (image, non-pano)   80
Pano generation (multi-image)      100
Pano generation (video)            100
Draft world generation             150
World generation                 1,500
HQ mesh export                   3,500

1,250 credits = $1.00   (minimum purchase $5.00)

So a standard world from a photograph is 1,580 credits, about $1.26. The high-quality textured mesh is the expensive export at $2.80, takes up to an hour, and is rate limited to four per hour. PLY splat export costs nothing. In the Marble app, the subscription plans are gated by capability rather than by volume alone: exporting at all requires the Standard plan, and commercial rights plus the high-quality mesh require Pro. If a client project will ship the output, that is the tier, and it is worth knowing before the first render.

One billing trap the docs flag themselves: Marble app credits and World API credits are separate balances, and a request that starts while yours is low can run past zero and settle as an overage invoiced weeks later. Auto-refill does not cap it. That guardrail is yours to write, the same way a model cascade needs its own ceiling.

How does a generated world get into a three.js page?

Through Spark, World Labs' open-source Gaussian splat renderer for three.js, MIT licensed, currently 2.1.0 against three.js 0.180 on WebGL2. It reads PLY, SPZ, SPLAT, KSPLAT and SOG. The getting-started block in the repository is four meaningful lines:

import { SparkRenderer, SplatMesh } from "@sparkjsdev/spark";

const spark = new SparkRenderer({ renderer });
scene.add(spark);

const butterfly = new SplatMesh({ url: splatURL });
butterfly.quaternion.set(1, 0, 0, 0);
scene.add(butterfly);

That quaternion looks like a magic number and is not. It is a 180 degree turn about X, which negates Y and Z, and it is there because of a line buried in the export FAQ:

Default world labs worlds are in OpenCV coordinate system (+x left, +y down, +z forward). Many DCC software are in the OpenGL coordinate system (+x left, -y down, -z forward). To correct for it, perform an OpenCV-to-OpenGL transformation by scaling the Y and Z axes by -1.

Skip it and your world loads upside down, with no error and no warning, which is the most expensive kind of wrong. I lost an afternoon to the same family of bug in a Blender export: a colour attribute left on a mesh ships as COLOR_0 and three.js multiplies it into the material regardless of the texture, silently. Splats are the third answer to drawing geometry in code versus modelling it, and they arrive with their own axis convention, like every asset pipeline does.

Will two million splats survive a phone?

Probably not over cellular, and the reason World Labs gives is bytes, not shading rate. From the Spark 2.0 write-up:

most consumer devices can only render 1-5M splats at interactive frame rates. Large scenes need to download 100+ MB or even 1+ GB 3DGS data before displaying it. Mobile device browsers have a cap on GPU memory utilization, limiting the size of worlds that can be shared reliably online.

Which is why Marble ships two export tiers, about 2M splats and about 500k, and why Spark 2.0 added a streaming format: .RAD files chunked at 64K splats, so a scene appears almost instantly as a coarse approximation and refines toward the camera. The 500k tier is the realistic phone target, and nobody has published load times for it. Not World Labs, not the community sites I checked. The number does not exist yet.

So the settling test is small and worth running before any of this reaches a proposal: export one world at both tiers, record the SPZ byte count, and measure time-to-first-frame in Spark on a real iPhone over cellular. Two numbers, one afternoon.

On a real device, and I mean that literally. Earlier this year I quoted a frame rate for the WebGL traverse on this site that was measured in headless Chromium, which disables the GPU and falls back to a software rasteriser. It measured a CPU, not the scene, and the figure was wrong in a way no amount of re-running would have caught. Assert the renderer string before you trust any frame number. The same rule that makes a phone the first viewport rather than the last makes a phone the only place a splat budget can be settled.

For scale on the other side of the trade: a scroll-scrubbed hero built on the scroll-scrub stack I use runs 277 WebP frames at 4.3 MB total. A 500k-splat world is a different order of asset, and it buys one thing a frame sequence cannot, which is a camera the visitor moves. Whether that is worth the bytes is a question about the specific page, not a general one.

Which of these systems hands you a file?

Two of them, out of the six I looked at. That single question sorts the world-model field more usefully than any capability list, because a studio ships static assets to a CDN and cannot ship someone else's GPU.

Two columns comparing six world-model systems. The left column, generated offline and exported as an asset, holds World Labs Marble (public since November 2025, splats, meshes, panoramas and video, one dollar per 1,250 credits), World Labs Atlas (early access with select partners, announced 1 September 2026, no price published, video up to a minute at 1440p plus point clouds and splats) and Tencent HY-World 2.0 (open weights under the Tencent community licence, EU download blocked, April 2026, meshes). The right column, simulated in real time and delivered as a stream, holds Google Genie 3 or Project Genie (limited preview, real time, no export), Odyssey with Odyssey-2 and Agora-1 (public demo, real time and minutes long, no export, having raised 310 million dollars at a 1.45 billion dollar valuation in June 2026) and Decart with Oasis 3 and Lucy (API, real time, no export). Two notes below explain that the left column costs latency and a fixed bill per world while the right column costs a GPU for every visitor for as long as they stay.

Marble and Tencent's HY-World 2.0 give you a file. Google's Genie 3, Odyssey and Decart give you a live stream from their hardware, which is more impressive and belongs to a different kind of product: one with a runtime, a per-visitor inference bill, and an availability story a marketing site cannot underwrite. Atlas sits in the left column on capability and in nobody's column on availability.

Four things I would test first

None of these needs Atlas. Each is something I would want measured before putting a splat world in front of a client, and I have run none of them yet.

  • One room, not one site. A single splat scene as a section inside an existing scroll page, with the camera on the scroll position rather than free navigation. The page still works if the file never loads, which is the only version of this I would ship.
  • A walkthrough from photographs a client already has. Marble takes multi-image input, so the raw material is a dozen good photos, not a capture rig. For a business with a room worth seeing, that is about $1.28 a render, up to $2.48 on the Plus model, and an afternoon against the cost of a scanning service.
  • The 500k versus 2M export test. Bytes and time-to-first-frame on an actual iPhone, both tiers, before any of this appears in a proposal. If the 500k tier does not open in a reasonable time on cellular, everything above it is decoration.
  • Camera-controlled establishing shots, minus the camera control. The Atlas capability I most want is a hand-designed path through a generated space, and it is not purchasable today. Marble's rendered video with camera control is, along with its enhanced-video pass on Pro. My own rule is that social clips run 5 to 30 seconds and never over 35, so a full minute at 1440p is longer than anything I would ship. The length is not the interesting part. The staging is.

What do the terms say before client media goes in?

Read section 3 before the first upload, not after. Under the terms last updated 21 January 2026, paid and API users own their outputs and may use them commercially; free accounts get a revocable, personal, non-commercial licence only, and account status is fixed at the moment of generation. Paid users must not misrepresent an output's origin, and, on World Labs' reasonable request, must include attribution such as "Generated using World Labs" on public or commercial distribution. Better surfaced in a proposal than discovered during a launch.

The input side matters more. World Labs takes a sublicensable licence to use your content for product development, marketing, benchmarking and model training. For free accounts that licence is irrevocable. For paid accounts it is revocable prospectively through the account page, and revocation pulls nothing out of models already trained. Client photographs are client property, so the opt-out belongs in onboarding. Protected health information needs a business associate agreement first. And if the space is a listed property, check the MLS's rules on altered or generated images before publishing anything.

The Atlas request form is open, and I have filled it in. Until somebody outside the partner list can call it, the only defensible thing to say about Atlas is what the announcement says, at the resolution the announcement gives. The two numbers I actually want cost nothing but an afternoon and a phone: how many megabytes a 500k-splat room really is, and how long it takes to show up over cellular.

Common questions

Can I use World Labs Atlas today?

No. Atlas was announced on 1 September 2026 and is in early access with unnamed partners through a request form. There is no public API, no published price, no paper and no model card, and it does not appear on the World Labs API pricing page. Marble, the product Atlas is meant to power, is generally available.

What does a Marble world cost?

World Labs sells API credits at $1.00 per 1,250 credits with a $5.00 minimum. A world generation is 1,500 credits and a draft is 150, so a standard world from a photograph is 1,580 credits, about $1.26. A high-quality mesh export is 3,500 credits ($2.80) and PLY splat export is free. Exporting at all requires the Standard plan; commercial rights and the high-quality mesh require Pro.

How do you put a Gaussian splat world into a website?

Export SPZ or PLY from Marble and load it with Spark, World Labs' MIT-licensed splat renderer for three.js, currently 2.1.0 against three.js 0.180 on WebGL2. Exports arrive in OpenCV axes (+x left, +y down, +z forward), so scale Y and Z by -1, which is what the quaternion.set(1, 0, 0, 0) line in Spark's starter file does.

How many splats can a phone render?

World Labs states that most consumer devices render 1 to 5 million splats at interactive frame rates, and that large scenes need to download 100+ MB or even 1+ GB before displaying. Marble therefore exports at roughly 2M and 500k splats, and Spark 2.0 streams .RAD files in 64K-splat chunks. No one has published real mobile load times for either tier, so measure bytes and time-to-first-frame on an actual device.

Do I have to credit World Labs in client work?

Under the terms last updated 21 January 2026, paid users own their outputs and may use them commercially, must not misrepresent their origin, and on World Labs' reasonable request must include attribution such as "Generated using World Labs" on public or commercial distribution. World Labs also takes a licence to use uploaded content for training, irrevocable on free accounts and prospectively opt-out-able on paid ones.

Related

← All insights