[
  {
    "label": "explore-settlement",
    "seed": "314",
    "source": "# Report-owned sampler of public examples, not a library family selector.\nprograms = ('roof_home', 'roof_held', 'roof_pair', 'court', 'home', 'hall', 'high', 'adaptation', 'settlement', 'courtyard', 'commons', 'atelier', 'dwelling', 'campus', 'perimeter', 'sample_hall', 'sample_connector', 'sample_boundary')\nprogram = programs[SEED % len(programs)]\nif program == 'roof_home':\n    from examples.roof_home import roof_home\n    from hearth.lodges import lodge_scene\n    \n    scene = lodge_scene(roof_home(SEED), seed=SEED, environment_seed=int(ENV_SEED))\nelif program == 'roof_held':\n    from hearth import Scene, Box\n    from hearth.environment import Terrain, gradient, wave, radial\n    from hearth.randomness import Scope\n    from hearth.components import adapted\n    \n    # Same frozen-field recipe used by the experiment; no sample substitution.\n    es = int(ENV_SEED)\n    rng = Scope(es).stream('roof-space-environment')\n    domain = Box((-10, -4, -20), (52, 72, 52))\n    field = (gradient(rng.choice((-.025, 0, .025)), rng.choice((-.02, 0, .02)), 4) + wave(.3, .13, .09, rng.random() * 6)).blend(gradient(-.02, .02, 4) + radial(18, 18, 36, .5), radial(8, 10, 44, .6)).clamp(2, 6)\n    water = rng.choice((None, 4, 5))\n    environment = Scene(es, domain=domain)\n    environment.place('land', Terrain(domain, field, water))\n    environment.finalize()\n    scene = environment.fork(seed=SEED)\n    from examples.building_space import held_out_design\n    scene.compose_choice(adapted(\"building\", held_out_design(SEED), \"/land\"))\n    scene.finalize()\nelif program == 'roof_pair':\n    from hearth import Scene, Box\n    from hearth.environment import Terrain, gradient, wave, radial\n    from hearth.randomness import Scope\n    from hearth.components import adapted\n    \n    # Same frozen-field recipe used by the experiment; no sample substitution.\n    es = int(ENV_SEED)\n    rng = Scope(es).stream('roof-space-environment')\n    domain = Box((-10, -4, -20), (52, 72, 52))\n    field = (gradient(rng.choice((-.025, 0, .025)), rng.choice((-.02, 0, .02)), 4) + wave(.3, .13, .09, rng.random() * 6)).blend(gradient(-.02, .02, 4) + radial(18, 18, 36, .5), radial(8, 10, 44, .6)).clamp(2, 6)\n    water = rng.choice((None, 4, 5))\n    environment = Scene(es, domain=domain)\n    environment.place('land', Terrain(domain, field, water))\n    environment.finalize()\n    scene = environment.fork(seed=SEED)\n    from examples.roof_home import roof_home\n    scene.compose_choice(adapted(\"building\", roof_home(SEED), \"/land\"))\n    scene.finalize()\nelif program == 'court':\n    from examples.garden_house import garden_house\n    from hearth.lodges import lodge_scene\n    \n    scene = lodge_scene(garden_house(SEED), seed=SEED, environment_seed=int(ENV_SEED))\nelif program == 'home':\n    from hearth.lodges import hillside_home, lodge_scene\n    \n    scene = lodge_scene(hillside_home(SEED), seed=SEED, environment_seed=int(ENV_SEED))\nelif program == 'hall':\n    from hearth.lodges import gabled_hall, lodge_scene\n    \n    scene = lodge_scene(gabled_hall(SEED), seed=SEED, environment_seed=int(ENV_SEED))\nelif program == 'high':\n    from hearth.lodges import high_house, lodge_scene\n    \n    scene = lodge_scene(high_house(SEED), seed=SEED, environment_seed=int(ENV_SEED))\nelif program == 'adaptation':\n    from hearth import Scene\n    from hearth.environment import Terrain\n    from hearth.assessment import adaptation_expression\n    from hearth.components.building import adapted\n    from hearth.lodges import hillside_home\n    from hearth.quality_assessment import DOMAIN\n    \n    field, water = adaptation_expression(int(ENV_SEED))\n    environment = Scene(int(ENV_SEED), domain=DOMAIN)\n    environment.place('land', Terrain(DOMAIN, field, water))\n    environment.finalize()\n    scene = environment.fork(seed=SEED)\n    scene.compose_choice(adapted('building', hillside_home(SEED), '/land'))\n    scene.finalize()\nelif program == 'settlement':\n    from hearth.programs import settlement_scene\n    \n    # Same public entry point used by the delivered generate.py.\n    # This program consumes SEED and COUNT. Other controls are unused.\n    scene = settlement_scene(seed=SEED, count=COUNT)\nelif program == 'courtyard':\n    from examples.courtyard import build\n    scene = build(SEED)\nelif program == 'commons':\n    from hearth.programs import building_scene, commons\n    scene = building_scene(commons(SEED), seed=SEED)\nelif program == 'atelier':\n    from hearth.programs import building_scene, atelier\n    scene = building_scene(atelier(SEED), seed=SEED)\nelif program == 'dwelling':\n    from hearth.programs import building_scene, dwelling\n    scene = building_scene(dwelling(SEED), seed=SEED)\nelif program == 'campus':\n    from hearth_extensions.programs import extension_scene, branching_campus\n    \n    scene = extension_scene(branching_campus, seed=SEED, environment_seed=int(ENV_SEED))\nelif program == 'perimeter':\n    from hearth_extensions.programs import extension_scene, perimeter_cluster\n    \n    scene = extension_scene(perimeter_cluster, seed=SEED, environment_seed=int(ENV_SEED))\nelif program == 'sample_hall':\n    from hearth_extensions.assessment import hall_scene\n    scene = hall_scene(SEED, int(ENV_SEED))\nelif program == 'sample_connector':\n    from hearth_extensions.assessment import freeze_probe, connector_scene\n    scene = connector_scene(freeze_probe(int(ENV_SEED)), SEED)\nelif program == 'sample_boundary':\n    from hearth import Scene\n    from hearth.environment import Terrain\n    from hearth_extensions.assessment import PROBE_DOMAIN, probe_expression, boundary_scene\n    field, _ = probe_expression(int(ENV_SEED))\n    environment = Scene(int(ENV_SEED), domain=PROBE_DOMAIN)\n    environment.place('land', Terrain(PROBE_DOMAIN, field))\n    environment.finalize()\n    scene = boundary_scene(environment, SEED)\nprint('Explored program: ' + program)\n",
    "variables": {
      "ATTIC_PURPOSE": "bedroom",
      "WINDOW_WIDTH": 1,
      "WINDOW_HEIGHT": 2,
      "WINDOW_BOXES": false,
      "CONTRAST_RAILS": false,
      "ENV_SEED": "0",
      "BAY": 13,
      "FLOORS": 3,
      "WING": false,
      "RISE": "2,1",
      "DORMER_SPACING": 0,
      "PORCH_DEPTH": 5,
      "BALCONY": false,
      "CHIMNEY": false,
      "GARDEN": false,
      "COUNT": null
    },
    "message": "Traceback (most recent call last):\n  File \"/runtime/bridge.py\", line 32, in generate_request\n    exec(compile(source, '<report-client>', 'exec'), scope)\n  File \"<report-client>\", line 84, in <module>\n  File \"/runtime/hearth/programs.py\", line 184, in settlement_scene\n    scene.place('village', Settlement(designs, domain, '/land'))\n  File \"/runtime/hearth/kernel/scene.py\", line 149, in place\n    candidate._check(False)\n  File \"/runtime/hearth/kernel/scene.py\", line 391, in _check\n    raise ValidationError(errors)\nhearth.kernel.errors.ValidationError: clearance: /village/connections/paths at (-5, 5, 40): Protected player headroom is obstructed\nclearance: /village/connections/paths at (-5, 6, 40): Protected player headroom is obstructed\n"
  }
]