DOCS
What you get.
A Perplace world contains the 3D scene and structured data about its spaces and objects. This page describes the model in the interactive demo, for use in design tools, games and simulations. It is an early-access preview and the contract is versioned.
From the city to the object
Every world is one tree. A city holds buildings, a building holds floors, a floor holds rooms, and a room holds objects. Each level has a stable id and typed fields, so “the armchair in the living room on the ground floor of the corner building” is a path, not a search.
Rooms carry their bounds in metres and their connections to other rooms and to the exterior. Objects carry the primitives that draw them and the semantics that make them usable.
| Level | What it carries |
|---|---|
| City | Blocks, streets, building footprints and the character of the place. |
| Building | Floors, facades, roofs, entrances, per-floor program (offices, homes, retail). |
| Floor | Rooms, circulation, doors and windows, the cut height used by cutaway views. |
| Room | Bounds, connections, the objects inside. |
| Object | Name, parts, uses, material, state, articulation, mobility, collision, access points. |
Geometry: convex primitives
Interiors are described as a flat list of entities. Each entity is one convex primitive with a position, a size and an optional rotation, in metres, Y up. There are four shapes: box, rounded box, cylinder and sphere. Nothing is a merged or planar mesh, so every entity is also a collider.
An entity names its material, its group (architecture or objects) and the room it belongs to. Entities flagged as cut are the ones a cutaway view slices at the cut height.
{
"id": "p339",
"shape": "rounded",
"pos": [6.4, 0.3, 5.8],
"size": [4.6, 0.35, 1.1],
"material": "walnut",
"group": "objects",
"room": "living"
}Materials are named, not baked. The world ships a material table (colour, roughness, texture name) that you map to your own PBR library.
Objects: the semantic record
An object groups primitives and gives them meaning. Names and uses are bilingual. Every field below is a fact an agent can query or a change you can ask for.
| Field | Meaning |
|---|---|
| id · name · article | Stable id and a display name with its article, in English and Spanish. |
| parts | The primitive ids that draw the object. |
| uses | What an agent can do here: sit, lie down, open, look out, pick up, water, prune. |
| material · state | Human-readable material and current state, kept in sync with articulation. |
| agent | Access points: seat positions, seat height, facing direction, approach side, reach height. |
| articulation | How it moves: hinge, slide, grasp or rigid, with axis, pivot, range, named states and the current one. |
| mobility | fixed, movable or graspable, with an approximate mass in kilograms. |
| collision | Convex pieces, whether it blocks an agent, whether it can be walked on. |
| surface | Where things can be put down: height and area of the top. |
| storage | For shelves: bays and rows that hold graspable volumes. |
{
"kind": "hinge",
"parts": ["p273"],
"axis": [0, 1, 0],
"pivot": [0.36, 1.2, 3.41],
"rangeRad": [0, 1.45],
"direction": 1,
"states": {
"closed": { "value": 0 },
"ajar": { "value": 0.22 },
"open": { "value": 1.45 }
},
"current": "open"
}A door’s articulation. The hinge sits on the real jamb, the leaf swings into the room, and its state persists: an agent that closes it leaves it closed.
Delivery formats
The same world is delivered in the representation your project needs.
| Format | What it contains |
|---|---|
| JSON | The structured world: the entity list, the object records and the room tree described on this page. |
| USD | One transform per object with the Perplace attributes (object id, kind, room, uses, parent) alongside the meshes; rooms with their bounds; provenance hash of the source package. Opened in a physics simulator for agents as part of our validation. |
| glTF / GLB | The visual scene for engines and DCC tools. |
| Simulation grids | Walkable and blocked cells derived from the collision pieces, at the resolution you request. |
Opening it in your engine
Blender, Unreal Engine, Unity, Godot, Houdini, Omniverse and three.js all read at least one of the formats above. What you map on your side:
- Materials: named entries to your PBR library.
- Primitives: the four shapes instance well; group by shape and material for batching.
- Articulation: hinges and slides to your joint or constraint system; the pivot and axis are already in world units.
- Collision: each primitive is a convex collider as is. No physics is baked; mass and states travel as data for whoever simulates.
Sample world
The living room from the product page, as shipped: the geometry as convex primitives and the object records described above. Free to download and evaluate, no account needed.
Evaluation license: use it in prototypes and internal tests. Do not redistribute the files as they are. A commercial license comes with early access.
Early access
The model is versioned and will grow as more of the catalogue carries these fields. If you are building agents, a simulation or a game world and want to read this data directly, ask for early access on the product page and tell us what you want to build.