Composer half of the ground-truth bead: examples/harbor-house/drawings/ harbor-house 1.svg turned out to be a Bonsai/Blender render of 3m.dom's own IFC (32 IfcSpace paths == 3m.dom's upper-storey leaf count), not a human trace, so no usable reference exists yet -- this builds and tests the pipeline that will consume one once traced. compose.py parses storey-N Inkscape layers of cut-lines + labels against a boundary-stub .dom (plot/ height/elevation only, no room shapes to keep aligned across storeys) and recursively detects guillotine cuts, mirroring geometry.py's own division-line algebra; non-slicible regions and label mismatches are reported by location rather than guessed at. homemaker-compose CLI added. Renamed dom._link to public dom.link since compose.py needs to re-link from outside dom.py. Full design writeup in DESIGN.md sec 37.3; actual human tracing of harbor-house/programme-house is tracked as follow-up under 2g7.1, still open. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LSwQwpEaHFBkeVSDDWd75S
35 lines
836 B
TOML
35 lines
836 B
TOML
[project]
|
|
name = "homemaker-layout"
|
|
version = "0.0.1"
|
|
description = "Programme-driven building layout search over slicing trees (Python successor to Urb)"
|
|
requires-python = ">=3.11"
|
|
dependencies = [
|
|
"pyyaml>=6.0",
|
|
"numpy>=1.26",
|
|
"scipy>=1.11",
|
|
"shapely>=2.0",
|
|
"networkx>=3.0",
|
|
"cma>=3.0",
|
|
]
|
|
|
|
[project.scripts]
|
|
homemaker-evolve = "homemaker_layout.evolve:main"
|
|
homemaker-fitness = "homemaker_layout.fitness_cmd:main"
|
|
homemaker-collapse = "homemaker_layout.collapse_cmd:main"
|
|
homemaker-compose = "homemaker_layout.compose_cmd:main"
|
|
|
|
[project.optional-dependencies]
|
|
dev = ["pytest>=8.0", "ruff>=0.5"]
|
|
|
|
[build-system]
|
|
requires = ["setuptools>=68"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[tool.setuptools.packages.find]
|
|
where = ["src"]
|
|
|
|
[tool.pytest.ini_options]
|
|
pythonpath = ["src"]
|
|
|
|
[tool.ruff]
|
|
line-length = 100
|