{
  "name": "Delhi Pulse sunlit miniature kit",
  "version": "3.0.0",
  "status": "Original refined prototype assets. Standard-library export; Blender background startup was unavailable. Browser/render quality and mobile performance require integration checks.",
  "authorship": "Original procedural geometry and 128px material tiles authored for this project; no external model or texture assets. Geometry recipes are new; primitive math helpers are reused.",
  "license": "CC0-1.0",
  "palette": {
    "ink": "#3C3427",
    "paper": "#F6EBD8",
    "forest": "#355944",
    "gold": "#D99A36",
    "river": "#528B94",
    "clay": "#956B64",
    "ivory": "#FFFAF0"
  },
  "generator": "design/export-miniatures-v3.py",
  "geometryRecipes": "design/generate-miniatures-v3.py",
  "coordinateSystem": {
    "up": "+Z",
    "forward": "+Y",
    "handedness": "right",
    "units": "normalized model units",
    "gltfConventionNote": "Deliberately uses the existing deck.gl map axes rather than glTF default +Y-up. A standard +Y-up viewer must rotate -90 degrees about X.",
    "origin": "Centered horizontally; lowest geometry at Z=0.",
    "reference": "Vehicle length / tower, sensor and landmark height / satellite span each normalized to 1. Use per-model referenceDimension."
  },
  "models": [
    {
      "id": "aircraft",
      "name": "Porcelain airliner",
      "file": "aircraft.glb",
      "description": "Smooth tapered airliner with swept wings, sculpted tail, two nacelles and separate engine fan rotors.",
      "triangles": 7668,
      "vertices": 5880,
      "bytes": 244608,
      "materialPrimitives": 10,
      "meshNodes": 8,
      "embeddedImages": 0,
      "bounds": {
        "min": [
          -0.448333,
          -0.5,
          0
        ],
        "max": [
          0.448333,
          0.5,
          0.257333
        ]
      },
      "dimensions": [
        0.896667,
        1.0,
        0.257333
      ],
      "referenceDimension": "length",
      "referenceSize": 1,
      "articulations": [
        {
          "node": "fan.left",
          "rotationAxis": "+Y",
          "purpose": "Optional local fan motion only; does not imply observed aircraft speed or engine state.",
          "pivot": [
            -0.175,
            0.0675,
            0.035833
          ]
        },
        {
          "node": "fan.right",
          "rotationAxis": "+Y",
          "purpose": "Optional local fan motion only; does not imply observed aircraft speed or engine state.",
          "pivot": [
            0.175,
            0.0675,
            0.035833
          ]
        }
      ],
      "animations": [],
      "license": "CC0-1.0"
    },
    {
      "id": "bus",
      "name": "Delhi city bus",
      "file": "bus.glb",
      "description": "Forest enamel city bus with inset glazing, entry doors, mirrors, roof plant and separate rolling wheels.",
      "triangles": 5224,
      "vertices": 5632,
      "bytes": 245000,
      "materialPrimitives": 19,
      "meshNodes": 11,
      "embeddedImages": 1,
      "bounds": {
        "min": [
          -0.20354,
          -0.5,
          0
        ],
        "max": [
          0.20354,
          0.5,
          0.424877
        ]
      },
      "dimensions": [
        0.40708,
        1.0,
        0.424877
      ],
      "referenceDimension": "length",
      "referenceSize": 1,
      "articulations": [
        {
          "node": "wheel.left.rear",
          "rotationAxis": "+X",
          "purpose": "Wheel angle may be driven by measured ground speed; no baked travel.",
          "pivot": [
            -0.150442,
            -0.282694,
            0.064897
          ]
        },
        {
          "node": "wheel.right.rear",
          "rotationAxis": "+X",
          "purpose": "Wheel angle may be driven by measured ground speed; no baked travel.",
          "pivot": [
            0.150442,
            -0.282694,
            0.064897
          ]
        },
        {
          "node": "wheel.left.front",
          "rotationAxis": "+X",
          "purpose": "Wheel angle may be driven by measured ground speed; no baked travel.",
          "pivot": [
            -0.150442,
            0.281711,
            0.064897
          ]
        },
        {
          "node": "wheel.right.front",
          "rotationAxis": "+X",
          "purpose": "Wheel angle may be driven by measured ground speed; no baked travel.",
          "pivot": [
            0.150442,
            0.281711,
            0.064897
          ]
        }
      ],
      "animations": [],
      "license": "CC0-1.0"
    },
    {
      "id": "india-gate",
      "name": "India Gate in warm stone",
      "file": "india-gate.glb",
      "description": "Original stylized landmark with an open vaulted arch, layered cornices, recessed pier panels and a separate small tricolour.",
      "triangles": 3504,
      "vertices": 4654,
      "bytes": 224824,
      "materialPrimitives": 8,
      "meshNodes": 6,
      "embeddedImages": 3,
      "bounds": {
        "min": [
          -0.331244,
          -0.205909,
          0
        ],
        "max": [
          0.331244,
          0.205909,
          1.0
        ]
      },
      "dimensions": [
        0.662489,
        0.411817,
        1.0
      ],
      "referenceDimension": "height",
      "referenceSize": 1,
      "articulations": [
        {
          "node": "flag.cloth",
          "rotationAxis": "+Z",
          "purpose": "Tiny local cloth tilt may be tied to observed wind; landmark remains static.",
          "pivot": [
            0.173679,
            0.082363,
            0.995524
          ]
        }
      ],
      "animations": [
        {
          "name": "local-detail",
          "purpose": "Decorative local articulation; conveys no measured operating state.",
          "reducedMotion": "Disable playback."
        }
      ],
      "license": "CC0-1.0"
    },
    {
      "id": "aqi-station",
      "name": "Air quality observation centre",
      "file": "aqi-station.glb",
      "description": "Stone monitoring shelter with glazed door, sampling inlet, weather mast, screened fan and a small solar roof.",
      "triangles": 3052,
      "vertices": 2993,
      "bytes": 156068,
      "materialPrimitives": 10,
      "meshNodes": 10,
      "embeddedImages": 2,
      "bounds": {
        "min": [
          -0.558376,
          -0.436548,
          0
        ],
        "max": [
          0.558376,
          0.436548,
          1.0
        ]
      },
      "dimensions": [
        1.116751,
        0.873096,
        1.0
      ],
      "referenceDimension": "height",
      "referenceSize": 1,
      "articulations": [
        {
          "node": "vent.fan",
          "rotationAxis": "+X",
          "purpose": "Optional local fan detail; not a measured station operating-state indicator.",
          "pivot": [
            0.445008,
            0.199662,
            0.467005
          ]
        }
      ],
      "animations": [
        {
          "name": "local-detail",
          "purpose": "Decorative local articulation; conveys no measured operating state.",
          "reducedMotion": "Disable playback."
        }
      ],
      "license": "CC0-1.0"
    },
    {
      "id": "electricity-tower",
      "name": "Electricity transmission tower",
      "file": "electricity-tower.glb",
      "description": "Open lattice tower with tapered legs, diagonal braces, two cross arms, hanging ribbed ceramic insulators and four stone footings.",
      "triangles": 4280,
      "vertices": 5648,
      "bytes": 243544,
      "materialPrimitives": 6,
      "meshNodes": 6,
      "embeddedImages": 2,
      "bounds": {
        "min": [
          -0.286767,
          -0.184255,
          0
        ],
        "max": [
          0.286767,
          0.184255,
          1.0
        ]
      },
      "dimensions": [
        0.573534,
        0.368509,
        1.0
      ],
      "referenceDimension": "height",
      "referenceSize": 1,
      "articulations": [],
      "animations": [],
      "license": "CC0-1.0"
    },
    {
      "id": "metro",
      "name": "Delhi Metro miniature",
      "file": "metro.glb",
      "description": "Two connected warm porcelain cars with sliding doors, wraparound cab glass, roof equipment and separate wheel bogies.",
      "triangles": 8072,
      "vertices": 8912,
      "bytes": 377088,
      "materialPrimitives": 31,
      "meshNodes": 15,
      "embeddedImages": 1,
      "bounds": {
        "min": [
          -0.095175,
          -0.5,
          0
        ],
        "max": [
          0.095175,
          0.5,
          0.255168
        ]
      },
      "dimensions": [
        0.19035,
        1.0,
        0.255168
      ],
      "referenceDimension": "length",
      "referenceSize": 1,
      "articulations": [
        {
          "node": "wheel.left.0",
          "rotationAxis": "+X",
          "purpose": "Wheel angle may be driven by measured ground speed; no baked travel.",
          "pivot": [
            -0.07919,
            -0.394484,
            0.026397
          ]
        },
        {
          "node": "wheel.right.1",
          "rotationAxis": "+X",
          "purpose": "Wheel angle may be driven by measured ground speed; no baked travel.",
          "pivot": [
            0.07919,
            -0.394484,
            0.026397
          ]
        },
        {
          "node": "wheel.left.2",
          "rotationAxis": "+X",
          "purpose": "Wheel angle may be driven by measured ground speed; no baked travel.",
          "pivot": [
            -0.07919,
            -0.109986,
            0.026397
          ]
        },
        {
          "node": "wheel.right.3",
          "rotationAxis": "+X",
          "purpose": "Wheel angle may be driven by measured ground speed; no baked travel.",
          "pivot": [
            0.07919,
            -0.109986,
            0.026397
          ]
        },
        {
          "node": "wheel.left.4",
          "rotationAxis": "+X",
          "purpose": "Wheel angle may be driven by measured ground speed; no baked travel.",
          "pivot": [
            -0.07919,
            0.109986,
            0.026397
          ]
        },
        {
          "node": "wheel.right.5",
          "rotationAxis": "+X",
          "purpose": "Wheel angle may be driven by measured ground speed; no baked travel.",
          "pivot": [
            0.07919,
            0.109986,
            0.026397
          ]
        },
        {
          "node": "wheel.left.6",
          "rotationAxis": "+X",
          "purpose": "Wheel angle may be driven by measured ground speed; no baked travel.",
          "pivot": [
            -0.07919,
            0.394484,
            0.026397
          ]
        },
        {
          "node": "wheel.right.7",
          "rotationAxis": "+X",
          "purpose": "Wheel angle may be driven by measured ground speed; no baked travel.",
          "pivot": [
            0.07919,
            0.394484,
            0.026397
          ]
        }
      ],
      "animations": [],
      "license": "CC0-1.0"
    },
    {
      "id": "satellite",
      "name": "Earth observation satellite",
      "file": "satellite.glb",
      "description": "Faceted warm-metal observation bus with two separate photovoltaic wings, cell grid, antenna dish and sensor aperture.",
      "triangles": 3248,
      "vertices": 4147,
      "bytes": 180156,
      "materialPrimitives": 12,
      "meshNodes": 8,
      "embeddedImages": 1,
      "bounds": {
        "min": [
          -0.5,
          -0.145161,
          0
        ],
        "max": [
          0.5,
          0.145161,
          0.301613
        ]
      },
      "dimensions": [
        1.0,
        0.290323,
        0.301613
      ],
      "referenceDimension": "span",
      "referenceSize": 1,
      "articulations": [
        {
          "node": "panel.left",
          "rotationAxis": "+X",
          "purpose": "Separate panel wing for purposeful solar orientation; no invented orbit or attitude.",
          "pivot": [
            -0.105735,
            0.0,
            0.12724
          ]
        },
        {
          "node": "panel.right",
          "rotationAxis": "+X",
          "purpose": "Separate panel wing for purposeful solar orientation; no invented orbit or attitude.",
          "pivot": [
            0.105735,
            0.0,
            0.12724
          ]
        }
      ],
      "animations": [
        {
          "name": "local-detail",
          "purpose": "Decorative local articulation; conveys no measured operating state.",
          "reducedMotion": "Disable playback."
        }
      ],
      "license": "CC0-1.0"
    }
  ]
}
