Look at a picture of a thing and build it from a few blocks, each with a pixel texture. Export it to 3D tools or to Blender.
Load a photo of the thing. It stays on this device. Turn the view to match the photo, then slide the overlay to compare.
No parts yet. Add a box or load an example.
An example replaces the open model. Undo brings the old one back.
Select a part in the view or the list.
Select a part to paint its faces.
No saved models yet.
To use the script: run blender -b -P file.py, or in Blender open Scripting, Open, then Run Script. It rebuilds the blocks with sharp pixel textures and renders a PNG next to the script.
For the .obj file, set the Closest or Nearest filter on the atlas picture in your 3D tool, or the pixels will look blurred.
An agent can write a model as JSON and a person opens it here with Import model. The schema is aim.block-model.v1.
{
"schema": "aim.block-model.v1",
"name": "string",
"unit": 0.0625,
"family": "seeds.json family id",
"seed": 7,
"centre": 0,
"palette": ["#rrggbb", "... letters A, B, C in order"],
"materials": { "id": { "colours": ["#light", "#base", "#dark"], "noise": 0.15, "roughness": 0.6, "metallic": 0 } },
"parts": [ { "id": "p1", "name": "string", "x": 0, "y": 0, "z": 0, "w": 4, "h": 4, "d": 4, "material": "id",
"faces": { "front": ["AB..", "..BA", "AB..", "..BA"], "back": null, "left": null, "right": null, "top": null, "bottom": null } } ]
}
Units are whole numbers. Y is up, and the front faces +z. Each face is rows of palette letters, read as seen from outside. A dot keeps the material texture. A face of null is all material. Sizes are 1 to 64 and there are at most 200 parts.
Saved in this browser under the key block-studio.v1. Download a backup often.