A scene is an entry in the open registry LabScenes, shown on a plate: a flat lit disc, the package's own small sky with the sun at one hour, and a frame clock. Headless each camera (lab_shot, lab_shot_at) settles and is written as build/lab/<scene>/<shot>.png (a stored PNG, written here); in a window N and P step through them. tools/lab/run.sh and sheet.py make the contact sheet; tools/lab/plate_build.py makes plate/. ludic.render3d gains r3d_plate_mode (no terrain, grass or water is made) and r3d_sky_path. quit() in a program with no frame loop links. The example takes ~120 MB resident, 417 MiB peak footprint. Reseed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
129 lines
No EOL
1.6 KiB
JSON
129 lines
No EOL
1.6 KiB
JSON
{
|
|
"asset": {
|
|
"version": "2.0",
|
|
"generator": "ludic tools/lab/plate_build.py"
|
|
},
|
|
"scene": 0,
|
|
"scenes": [
|
|
{
|
|
"nodes": [
|
|
0
|
|
]
|
|
}
|
|
],
|
|
"nodes": [
|
|
{
|
|
"name": "plate",
|
|
"mesh": 0
|
|
}
|
|
],
|
|
"meshes": [
|
|
{
|
|
"name": "plate",
|
|
"primitives": [
|
|
{
|
|
"attributes": {
|
|
"POSITION": 0,
|
|
"NORMAL": 1,
|
|
"TEXCOORD_0": 2
|
|
},
|
|
"indices": 3,
|
|
"material": 0
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"materials": [
|
|
{
|
|
"name": "plate",
|
|
"pbrMetallicRoughness": {
|
|
"baseColorTexture": {
|
|
"index": 0
|
|
},
|
|
"metallicRoughnessTexture": {
|
|
"index": 1
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"textures": [
|
|
{
|
|
"source": 0
|
|
},
|
|
{
|
|
"source": 1
|
|
}
|
|
],
|
|
"images": [
|
|
{
|
|
"uri": "plate_diff.png"
|
|
},
|
|
{
|
|
"uri": "plate_arm.png"
|
|
}
|
|
],
|
|
"buffers": [
|
|
{
|
|
"uri": "plate.bin",
|
|
"byteLength": 4256
|
|
}
|
|
],
|
|
"bufferViews": [
|
|
{
|
|
"buffer": 0,
|
|
"byteOffset": 0,
|
|
"byteLength": 1164
|
|
},
|
|
{
|
|
"buffer": 0,
|
|
"byteOffset": 1164,
|
|
"byteLength": 1164
|
|
},
|
|
{
|
|
"buffer": 0,
|
|
"byteOffset": 2328,
|
|
"byteLength": 776
|
|
},
|
|
{
|
|
"buffer": 0,
|
|
"byteOffset": 3104,
|
|
"byteLength": 1152
|
|
}
|
|
],
|
|
"accessors": [
|
|
{
|
|
"bufferView": 0,
|
|
"componentType": 5126,
|
|
"count": 97,
|
|
"type": "VEC3",
|
|
"min": [
|
|
-20.0,
|
|
0.0,
|
|
-20.0
|
|
],
|
|
"max": [
|
|
20.0,
|
|
0.0,
|
|
20.0
|
|
]
|
|
},
|
|
{
|
|
"bufferView": 1,
|
|
"componentType": 5126,
|
|
"count": 97,
|
|
"type": "VEC3"
|
|
},
|
|
{
|
|
"bufferView": 2,
|
|
"componentType": 5126,
|
|
"count": 97,
|
|
"type": "VEC2"
|
|
},
|
|
{
|
|
"bufferView": 3,
|
|
"componentType": 5125,
|
|
"count": 288,
|
|
"type": "SCALAR"
|
|
}
|
|
]
|
|
} |