{
  "schemaVersion": 1,
  "status": "completed",
  "startedAt": "2026-09-07T04:34:01.662361+00:00",
  "title": "A warmer home, with BlenderKit.",
  "reference": "/assets/references/floorplan.webp",
  "assumptions": [
    "Layout follows the supplied four-bedroom, three-bathroom plan. Width 18 m and ceiling 2.9 m are design assumptions; dimensions need site verification.",
    "BlenderKit supplies six furniture asset types; asset-manifest.json records authors and licenses. All 40 image maps are packed in the original Blender file.",
    "The downloadable Blender file is the reviewed source. The browser companion uses lighter subdivision and portable PBR finishes; its lighting approximates Cycles.",
    "These eight checkpoints re-execute this BlenderKit design. The four reviewed Cycles renders are reused with checksums; their original rendering logs are retained separately."
  ],
  "renders": [
    {
      "id": "living",
      "title": "Living room",
      "file": "02-dining-living.png",
      "preview": "02-dining-living.webp"
    },
    {
      "id": "dining",
      "title": "Living & dining",
      "file": "01-living-dining.png",
      "preview": "01-living-dining.webp"
    },
    {
      "id": "bedroom",
      "title": "Master bedroom",
      "file": "03-master-bedroom.png",
      "preview": "03-master-bedroom.webp"
    },
    {
      "id": "overview",
      "title": "Whole home",
      "file": "04-apartment-overview.png",
      "preview": "04-apartment-overview.webp"
    }
  ],
  "browserCameras": {
    "living": {
      "position": [
        -2.15,
        1.55,
        4.15
      ],
      "target": [
        0.2,
        1.36,
        -0.15
      ],
      "fov": 58
    },
    "bedroom": {
      "position": [
        -4.84,
        1.51,
        -0.94
      ],
      "target": [
        -6.87,
        1.12,
        -3.04
      ],
      "fov": 58
    }
  },
  "assetManifest": "asset-manifest.json",
  "renderSamples": 384,
  "renderRunDurationMs": 804656,
  "source": "Recorded BlenderKit reconstruction",
  "blenderVersion": "5.2.1 LTS",
  "script": "/scripts/record_blenderkit_build.py",
  "command": "blender -b --factory-startup --python-exit-code 1 --python scripts/record_blenderkit_build.py",
  "presentation": true,
  "defaultMode": "render",
  "stageLabel": "stage",
  "provenance": "Eight actual Blender executions/checkpoints of this BlenderKit design, recorded during reproducible reconstruction. The finished Cycles images and original packed Blender scene are the previously reviewed deliverables; imported images are identified by checksums, not claimed as newly rendered.",
  "steps": [
    {
      "id": "01",
      "title": "Trace the plan and build the shell",
      "summary": "Full-height walls, openings, floors and curtains.",
      "status": "completed",
      "source": "blender-python",
      "call": "architecture()",
      "code": "def architecture():\n    home.initialize_materials()\n    home.architecture()\n    return {'note':'Trace the supplied four-bedroom plan, cut real openings, lay individual oak boards and add full-height architecture. Width 18 m and height 2.9 m are explicit assumptions.'}\n",
      "operations": [
        "Trace the footprint and room partitions",
        "Raise 2.9 m exterior and interior walls",
        "Cut door and window openings",
        "Add jambs, headers and window frames",
        "Lay staggered individual oak floorboards",
        "Model pleated curtains, ceiling reveals and downlights"
      ],
      "startedAt": "2026-09-07T04:34:01.672590+00:00",
      "result": {
        "note": "Trace the supplied four-bedroom plan, cut real openings, lay individual oak boards and add full-height architecture. Width 18 m and height 2.9 m are explicit assumptions."
      },
      "model": "step-01.glb",
      "objects": 545,
      "bytes": 8868484,
      "meshPrimitives": 545,
      "embeddedImages": 10,
      "finishedAt": "2026-09-07T04:34:30.789856+00:00",
      "durationMs": 29117,
      "browserModel": "step-01-lite.glb",
      "browserBytes": 3032108
    },
    {
      "id": "02",
      "title": "Fit the oak kitchen",
      "summary": "Joinery, stone, appliances and task lighting.",
      "status": "completed",
      "source": "blender-python",
      "call": "kitchen()",
      "code": "def kitchen():\n    home.kitchen()\n    return {'note':'Build the L-shaped kitchen with cabinet fronts, stone worktops, a recessed sink, tap, oven, cooktop and task lighting.'}\n",
      "operations": [
        "Build base units and recessed plinths",
        "Add oak fronts and finger rails",
        "Cut the stone worktop and fit the sink",
        "Model the brass faucet",
        "Fit upper cabinets and task lighting",
        "Add cooktop, oven and extractor",
        "Fit the integrated refrigerator and accessories"
      ],
      "startedAt": "2026-09-07T04:34:30.791424+00:00",
      "result": {
        "note": "Build the L-shaped kitchen with cabinet fronts, stone worktops, a recessed sink, tap, oven, cooktop and task lighting."
      },
      "model": "step-02.glb",
      "objects": 606,
      "bytes": 9957876,
      "meshPrimitives": 606,
      "embeddedImages": 13,
      "finishedAt": "2026-09-07T04:34:49.418608+00:00",
      "durationMs": 18627,
      "browserModel": "step-02-lite.glb",
      "browserBytes": 3322836
    },
    {
      "id": "03",
      "title": "Furnish with BlenderKit",
      "summary": "The living room and six-seat dining area.",
      "status": "completed",
      "source": "blender-python",
      "call": "living_and_dining()",
      "code": "def living_and_dining():\n    home.lounge()\n    return {'note':'Load BlenderKit Taipei sofa, fluted coffee table, walnut dining table, six Netro chairs and ficus plants; add the rug, media wall, lamps and table settings.'}\n",
      "operations": [
        "Import the BlenderKit Taipei sofa",
        "Import the fluted coffee table",
        "Place the walnut dining table and six Netro chairs",
        "Add BlenderKit ficus plants",
        "Lay the wool rug",
        "Build the media wall and floating cabinet",
        "Add pendants, side lamp and geometric wall relief",
        "Set plates, glasses, linen and books"
      ],
      "startedAt": "2026-09-07T04:34:49.420316+00:00",
      "result": {
        "note": "Load BlenderKit Taipei sofa, fluted coffee table, walnut dining table, six Netro chairs and ficus plants; add the rug, media wall, lamps and table settings."
      },
      "model": "step-03.glb",
      "objects": 690,
      "bytes": 31823944,
      "meshPrimitives": 679,
      "embeddedImages": 42,
      "finishedAt": "2026-09-07T04:35:31.545415+00:00",
      "durationMs": 42125,
      "browserModel": "step-03-lite.glb",
      "browserBytes": 5911544
    },
    {
      "id": "04",
      "title": "Dress the four bedrooms",
      "summary": "Draped bedding, bedside lights and storage.",
      "status": "completed",
      "source": "blender-python",
      "call": "bedrooms()",
      "code": "def bedrooms():\n    home.bedrooms()\n    return {'note':'Furnish all four bedrooms with BlenderKit draped-linen beds, matching bedside cabinets, lamps, wardrobes and master-bedroom curtains.'}\n",
      "operations": [
        "Import four BlenderKit draped-linen beds",
        "Orient beds to the supplied plan",
        "Add rugs, bedside tables and lamps",
        "Build fitted wardrobes",
        "Add master-bedroom wall relief and curtains",
        "Place the bedroom ficus"
      ],
      "startedAt": "2026-09-07T04:35:31.547123+00:00",
      "result": {
        "note": "Furnish all four bedrooms with BlenderKit draped-linen beds, matching bedside cabinets, lamps, wardrobes and master-bedroom curtains."
      },
      "model": "step-04.glb",
      "objects": 769,
      "bytes": 73678404,
      "meshPrimitives": 748,
      "embeddedImages": 48,
      "finishedAt": "2026-09-07T04:36:13.032408+00:00",
      "durationMs": 41485,
      "browserModel": "step-04-lite.glb",
      "browserBytes": 15306036
    },
    {
      "id": "05",
      "title": "Fit the service rooms",
      "summary": "Stone floors, baths, basins and fixtures.",
      "status": "completed",
      "source": "blender-python",
      "call": "bathrooms()",
      "code": "def bathrooms():\n    home.service_rooms()\n    return {'note':'Fit the three service rooms with limestone floors, basins, taps, hollow baths and porcelain fixtures. The south bath alignment is corrected in the final review.'}\n",
      "operations": [
        "Lay limestone wet-room floors",
        "Build floating vanities and vessel basins",
        "Add brass basin faucets",
        "Cut hollow bathtub bowls",
        "Fit toilets and bathroom lighting"
      ],
      "startedAt": "2026-09-07T04:36:13.035848+00:00",
      "result": {
        "note": "Fit the three service rooms with limestone floors, basins, taps, hollow baths and porcelain fixtures. The south bath alignment is corrected in the final review."
      },
      "model": "step-05.glb",
      "objects": 796,
      "bytes": 74315244,
      "meshPrimitives": 775,
      "embeddedImages": 48,
      "finishedAt": "2026-09-07T04:37:06.792169+00:00",
      "durationMs": 53756,
      "browserModel": "step-05-lite.glb",
      "browserBytes": 15498756
    },
    {
      "id": "06",
      "title": "Set daylight and cameras",
      "summary": "Physical lighting and four owner-review views.",
      "status": "completed",
      "source": "blender-python",
      "call": "daylight()",
      "code": "def daylight():\n    home.assemble_daylight_and_cameras()\n    return {'note':'Set the daylight sky, window-area lighting, ceiling bounce, four cameras, Cycles/CUDA and AgX. Pack the actual scene textures.'}\n",
      "operations": [
        "Set the sky and sun direction",
        "Add north and south aperture lighting",
        "Add master-window daylight and ceiling bounce",
        "Position three interior cameras and the overview",
        "Configure Cycles, CUDA and AgX",
        "Pack textures and save the editable scene"
      ],
      "startedAt": "2026-09-07T04:37:06.795847+00:00",
      "result": {
        "note": "Set the daylight sky, window-area lighting, ceiling bounce, four cameras, Cycles/CUDA and AgX. Pack the actual scene textures."
      },
      "model": "step-06.glb",
      "objects": 796,
      "bytes": 74315492,
      "meshPrimitives": 775,
      "embeddedImages": 48,
      "finishedAt": "2026-09-07T04:37:58.769910+00:00",
      "durationMs": 51974,
      "browserModel": "step-06-lite.glb",
      "browserBytes": 15486600
    },
    {
      "id": "07",
      "title": "Refine light and framing",
      "summary": "Garden views, exposure, lamps and bedroom composition.",
      "status": "completed",
      "source": "blender-python",
      "call": "refine()",
      "code": "def refine():\n    runpy.run_path(str(ROOT/'scripts/refine_warm_home.py'),run_name='__main__')\n    runpy.run_path(str(ROOT/'scripts/finalize_warm_home.py'),run_name='__main__')\n    return {'note':'Add the planted exterior, lower bright daylight, refine master-bedroom framing and lamp glow, and verify packed images and furniture instances.'}\n",
      "operations": [
        "Add planted garden views",
        "Balance exposure and aperture light levels",
        "Reframe the master-bedroom camera",
        "Add flush skirting",
        "Refine bedside shade glow and room bounce",
        "Validate texture packing and furniture instances"
      ],
      "startedAt": "2026-09-07T04:37:58.773642+00:00",
      "result": {
        "note": "Add the planted exterior, lower bright daylight, refine master-bedroom framing and lamp glow, and verify packed images and furniture instances."
      },
      "model": "step-07.glb",
      "objects": 800,
      "bytes": 74408096,
      "meshPrimitives": 779,
      "embeddedImages": 48,
      "finishedAt": "2026-09-07T04:38:43.805714+00:00",
      "durationMs": 45032,
      "browserModel": "step-07-lite.glb",
      "browserBytes": 15486488
    },
    {
      "id": "08",
      "title": "Review walls and room layout",
      "summary": "Clean junctions, correct the bath and complete the laundry.",
      "status": "completed",
      "source": "blender-python",
      "call": "final_review()",
      "code": "def final_review():\n    runpy.run_path(str(ROOT/'scripts/fix_warm_home_overview.py'),run_name='__main__')\n    return {'note':'Union overlapping wall and window solids to remove black caps, rotate the south bath to match the plan and add stacked laundry appliances. This is the reviewed final design.'}\n",
      "operations": [
        "Union overlapping architectural junctions",
        "Rotate the south bathtub to match the plan",
        "Fit stacked washer/dryer and laundry storage"
      ],
      "startedAt": "2026-09-07T04:38:43.807147+00:00",
      "result": {
        "note": "Union overlapping wall and window solids to remove black caps, rotate the south bath to match the plan and add stacked laundry appliances. This is the reviewed final design."
      },
      "model": "step-08.glb",
      "objects": 679,
      "bytes": 74177252,
      "meshPrimitives": 658,
      "embeddedImages": 48,
      "finishedAt": "2026-09-07T04:39:18.551824+00:00",
      "durationMs": 34745,
      "browserModel": "step-08-lite.glb",
      "browserBytes": 15274196
    }
  ],
  "finishedAt": "2026-09-07T04:39:21.731303+00:00",
  "durationMs": 320069,
  "model": "step-08.glb",
  "blend": "warm-modern-home.blend",
  "preview": "02-dining-living.png",
  "browserModel": "step-08-lite.glb",
  "browserOptimization": "browser-optimization.json"
}
