assetyardby Binary Helix

3 ROOMS IN THE FREE PACK · ENVIRONMENT BACKEND · MIT AND APACHE-2.0

One picture in.
A 3D place out.

One command turns a generated or painted picture into a textured 3D scene that a character can walk around in. The GLB holds the picture at metric scale, the camera that took it, and a hidden floor for walking.

3
rooms in the free pack
4,052
walkable cells across them
422k
triangles of geometry
0
credits per rebuild in the beta

Three rooms, three pictures

Each GLB opens at the view of its picture. Drag to turn a little and see the depth. Press Walkable floor to show the collider.

Environment backend

The Last Gate

Download GLB
The picture · environment-town.png
The GLB, from its source camera · drag to turn

Preparing the viewer…

The town square the 3D build opens in, as one picture. An elevated view keeps a wide floor in frame, so the player has room to walk.

GLB · 4.75 MiB · 118,914 triangles · camera 4.02 m above the floor · 2,491 walkable cells of 0.25 m

How this file was made

Made on one of our GPU hosts during the administrator canary, with the worker runtime, graph and checked post-process, not through the public API. This command runs the same step.

assetyard generate environment \
  --reference-image assets/environment-town.png \
  --out assets/environment-town.glb

This command names no model. The server runs its current model for this kind of file, so a new run can give a different file.

SHA-256: 2a3c36f9008b0d0f4171d1223858a5a4f750a1b072eb2031c0fa7c5cdd9a4cc1

Environment backend

The Long Hall

Download GLB
The picture · environment-hall.png
The GLB, from its source camera · drag to turn

Preparing the viewer…

The hall of the gloom stalkers, as one picture. A long floor between pillars gives the fight a lane.

GLB · 5.63 MiB · 156,008 triangles · camera 1.92 m above the floor · 455 walkable cells of 0.25 m

How this file was made

Made on one of our GPU hosts during the administrator canary, with the worker runtime, graph and checked post-process, not through the public API. This command runs the same step.

assetyard generate environment \
  --reference-image assets/environment-hall.png \
  --out assets/environment-hall.glb

This command names no model. The server runs its current model for this kind of file, so a new run can give a different file.

SHA-256: 679db9ba2b7aed8f951524be387d128f7fd01ef125b22dd60356206450814c68

Environment backend

The Warden's Vault

Download GLB
The picture · environment-vault.png
The GLB, from its source camera · drag to turn

Preparing the viewer…

The boss room, as one picture. The seal in the middle of the floor is where the warden sleeps.

GLB · 5.58 MiB · 147,052 triangles · camera 2.15 m above the floor · 1,106 walkable cells of 0.25 m

How this file was made

Made on one of our GPU hosts during the administrator canary, with the worker runtime, graph and checked post-process, not through the public API. This command runs the same step.

assetyard generate environment \
  --reference-image assets/environment-vault.png \
  --out assets/environment-vault.glb

This command names no model. The server runs its current model for this kind of file, so a new run can give a different file.

SHA-256: f7a3d46e9086940824e9b02dd08b93b8eeca9515beda0da5d2547b1ee5e0d1d8

The same town, before and after

The first 3D build made its town from props and tiling textures. The town it plays in now is one generated picture, rebuilt with this command. The rigged characters are the same files.

BEFORE · PROPS AND TILING TEXTURES
The first 3D town: a flat cobbled plane with two market stalls, lamp posts and a standing stone in front of a dark wall.

A cobbled plane, two stalls, four lamp posts and a shrine. Everything past the wall is black.

AFTER · ONE PICTURE, REBUILT IN 3D
The rebuilt 3D town: a wet cobbled square at dusk with awnings, lanterns, a gatehouse and town walls, with the shieldmaiden and the merchant standing on the floor.

The stalls, lanterns, gatehouse, walls and sky come from the picture. The shieldmaiden and the merchant walk on its floor.

One command. Two ways in.

Start from a picture you already have:

assetyard generate environment --reference-image assets/hall.png --out assets/hall.glb

Or give only a prompt. The server first paints a landscape reference picture, and then rebuilds it:

assetyard generate environment --prompt "A long stone dungeon hall with a flat flagstone floor" --out assets/hall.glb

assetyard generate model --provider environment is the same request, so a script that already uses it keeps working:

assetyard generate model --provider environment --reference-image assets/hall.png --out assets/hall.glb

The rebuild costs 0 credits during the free beta, the same as mesh work from the 3D modeler. A request with --reference-image costs 0 credits. A request with only a prompt pays the image price for the reference picture that the server paints. The rebuild takes seconds of GPU time. A prompt adds the time to paint the picture.

Add --seed N to set the seed. The flags that every generate command has work here too: --wait, --out, --max-credits, --request-id, --collection, --json.

An environment request rejects the settings that shape an object: a geometry or orientation profile other than source, a face count, a texture resolution, a rig, animation packs or clips, and a body plan.

What is in the GLB

One file holds what a game needs to stand in the picture. The axes follow glTF: +Y is up, -Z is forward, and one unit is one metre. When the backend finds a floor, the floor lies on y = 0 and the camera stands above the origin.

PartWhat it isWhat a game does with it
backdropA mesh at metric scale, textured with the pictureDraws it, or uses it for depth only
source_cameraA glTF camera where the picture was taken, with its field of viewStarts the game camera there
floor_colliderA hidden mesh over the walkable cells. Only a picture with a visible floor has one.Collides with it, or casts rays onto it
scenes[0].extras.asset_yard_environmentThe camera, the source view, the floor plane and the walkable gridReads it to limit where characters walk

The build read this excerpt from environment-hall.glb. That file has the nodes backdrop, floor_collider, source_camera. The full record also holds the parameters of the floor fit, and a cells array of 57 rows. In a row, . is walkable, # is blocked and ? is unknown.

{
  "schema_version": 1,
  "units": "meters",
  "frame": "floor_aligned",
  "camera": {
    "fov_x_deg": 71.798,
    "fov_y_deg": 43.985,
    "aspect_ratio": 1.792,
    "image_width": 1536,
    "image_height": 857
  },
  "source_view": {
    "node": "source_camera",
    "position": [0, 1.921, 0]
  },
  "floor": {
    "normal": [0, 1, 0],
    "camera_height_m": 1.921,
    "inlier_area_m2": 30.205
  },
  "walkable": true,
  "walkable_grid": {
    "origin": [-1.851, 0, -17.606],
    "columns": 15,
    "rows": 57,
    "cell_size_m": 0.25,
    "walkable_cells": 455
  },
  "collider": {
    "node": "floor_collider",
    "triangles": 40
  }
}

Measured numbers are rounded to 3 decimals. Row 0 of the grid is at the minimum z, and column 0 is at the minimum x.

Use it in a game

The 3D demo plays in these three rooms. The game camera starts at the source view. It pans and zooms to follow the fight, drifts a few centimetres, leans toward the action and pushes in about 36 cm when a fight starts, so the room shows its depth. The game draws the textured backdrop, so a figure passes behind a pillar. A plane far behind the room fills the gaps: the sharp picture where the backdrop has no surface, such as the sky, and a soft, dark copy in the thin cracks at depth jumps. On these rooms, a push-in of half a metre and a sideways move of about 0.2 m stay clean. The game places people and props by a position in the picture, cast from the source camera onto the floor. The walkable grid limits where every character can walk.

curl -O https://assetyard.dev/demo3d/world3d.js

world3d.js is the template. It is one file with no build step. The page writes window.HOLLOWREACH_3D, which names the room files. ROOM_LAYOUT in world3d.js holds the picture positions of the spawn, the exits, the people, the props and the lamps for each room. A new room needs an entry in ROOM_ORDER and in ROOM_LAYOUT.

Write a picture that rebuilds well

The three rooms used these prompts. Each one names the view, the floor and what to leave out.

The Last Gate

Elevated wide view from an upper window over a small walled frontier town square at dusk. A broad open square of wet cobblestones fills the lower half of the frame. Market stalls with awnings line the left and right edges. Iron lanterns on wooden posts glow warm amber. A tall stone gatehouse with a closed iron portcullis stands in the far wall. Crenellated town walls, a violet dusk sky. Painterly realistic fantasy game environment, sharp detail, even depth of field. No people, no characters, no animals, no text, no logo, no watermark.
The command that painted this picture
assetyard generate image \
  --prompt "Elevated wide view from an upper window over a small walled frontier town square at dusk. A broad open square of wet cobblestones fills the lower half of the frame. Market stalls with awnings line the left and right edges. Iron lanterns on wooden posts glow warm amber. A tall stone gatehouse with a closed iron portcullis stands in the far wall. Crenellated town walls, a violet dusk sky. Painterly realistic fantasy game environment, sharp detail, even depth of field. No people, no characters, no animals, no text, no logo, no watermark." \
  --width 1664 \
  --height 928 \
  --seed 32 \
  --out assets/environment-town.png

This command names no model. The server runs its current model for this kind of file, so a new run can give a different file.

SHA-256: d3f7e8c5644ad8c84c36f6fda6fd8f99a29db438bc844f447e05f79b1e53583d

The Long Hall

Elevated wide view from high in one corner of a long vaulted stone dungeon hall. A broad flat flagstone floor fills the lower half of the frame. Thick square stone pillars stand along both sides. Iron wall sconces hold low orange flames. An arched doorway glows at the far end. Thin cold mist lies on the floor. Painterly realistic fantasy game environment, sharp detail, even depth of field. No people, no characters, no skeletons, no text, no logo, no watermark.
The command that painted this picture
assetyard generate image \
  --prompt "Elevated wide view from high in one corner of a long vaulted stone dungeon hall. A broad flat flagstone floor fills the lower half of the frame. Thick square stone pillars stand along both sides. Iron wall sconces hold low orange flames. An arched doorway glows at the far end. Thin cold mist lies on the floor. Painterly realistic fantasy game environment, sharp detail, even depth of field. No people, no characters, no skeletons, no text, no logo, no watermark." \
  --width 1664 \
  --height 928 \
  --seed 32 \
  --out assets/environment-hall.png

This command names no model. The server runs its current model for this kind of file, so a new run can give a different file.

SHA-256: f9477e712d3f7647e18f52470952220b9a56d78abb0f376405288d64c303a988

The Warden's Vault

Elevated wide view from a stone gallery into a vast circular underground vault. A broad flat cracked stone floor fills the lower half of the frame. A round iron seal in the centre of the floor glows amber from below. Heavy chains hang from the dark domed ceiling. Arched alcoves ring the curved walls. Painterly realistic fantasy game environment, sharp detail, even depth of field. No people, no characters, no statues, no text, no logo, no watermark.
The command that painted this picture
assetyard generate image \
  --prompt "Elevated wide view from a stone gallery into a vast circular underground vault. A broad flat cracked stone floor fills the lower half of the frame. A round iron seal in the centre of the floor glows amber from below. Heavy chains hang from the dark domed ceiling. Arched alcoves ring the curved walls. Painterly realistic fantasy game environment, sharp detail, even depth of field. No people, no characters, no statues, no text, no logo, no watermark." \
  --width 1664 \
  --height 928 \
  --seed 32 \
  --out assets/environment-vault.png

This command names no model. The server runs its current model for this kind of file, so a new run can give a different file.

SHA-256: ff45c6c6ddbcdeebaa36ab5a2be0bc158c491192c00d978804c7bcbdf70ee9c0

What one picture cannot do

License

MoGe-2 comes from Microsoft. Its code and weights use the MIT license. Its DINOv2 backbone uses Apache-2.0. The three rooms are part of the free pack, and the pack terms apply to them.