Metadata-Version: 2.4
Name: compas_tf
Version: 0.1.3
Summary: Timber floor development.
Author-email: Petras Vestartas <petrasvestartas@gmail.com>
License-Expression: MIT
Project-URL: Homepage, https://BRG-research.github.io/compas_tf
Project-URL: Documentation, https://BRG-research.github.io/compas_tf
Project-URL: Repository, https://github.com/BRG-research/compas_tf
Project-URL: Changelog, https://github.com/BRG-research/compas_tf/blob/main/CHANGELOG.md
Project-URL: Issues, https://github.com/BRG-research/compas_tf/issues
Project-URL: Forum, https://forum.compas-framework.org/
Classifier: Development Status :: 4 - Beta
Classifier: Topic :: Scientific/Engineering
Classifier: Operating System :: Unix
Classifier: Operating System :: POSIX
Classifier: Operating System :: Microsoft :: Windows
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: compas>=2
Requires-Dist: compas_model
Requires-Dist: shapely
Requires-Dist: compas_manifold>=0.1.0
Requires-Dist: compas_occt>=0.1.18
Provides-Extra: dev
Requires-Dist: attrs>=17.4; extra == "dev"
Requires-Dist: build; extra == "dev"
Requires-Dist: bump-my-version; extra == "dev"
Requires-Dist: compas_invocations2; extra == "dev"
Requires-Dist: invoke>=0.14; extra == "dev"
Requires-Dist: ruff; extra == "dev"
Requires-Dist: sphinx_compas2_theme; extra == "dev"
Requires-Dist: twine; extra == "dev"
Requires-Dist: wheel; extra == "dev"
Dynamic: license-file

# compas_tf

Timber floor development.

<img width="2784" height="1720" alt="image" src="https://github.com/user-attachments/assets/cda72e0f-519d-4058-8736-261175f67d48" />
<img width="1317" height="1128" alt="image" src="https://github.com/user-attachments/assets/53569564-7db7-4ba5-8f2b-6990057e8894" />



## Install

Prerequisites: [git](https://git-scm.com/downloads), [uv](https://docs.astral.sh/uv/getting-started/installation/), Python 3.12.

```bash
git clone https://github.com/BRG-research/compas_tf.git
cd compas_tf
uv venv .venv --python 3.12
source .venv/Scripts/activate      # macOS / Linux: source .venv/bin/activate
uv pip install -r requirements.txt -r requirements-dev.txt
uv pip install -e .
```

> Use `uv pip`, not plain `pip` — a `uv venv` has no pip of its own, so a bare
> `pip install` lands in the wrong environment.

`compas_viewer` is installed from the GitHub fork
[`petrasvestartas/compas_viewer`](https://github.com/petrasvestartas/compas_viewer)
(group-visibility cascade + signal-safe live scene reload used by
`examples/example_0_watch_viewer.py`). To work on the viewer itself, clone that
repo and `uv pip install -e path/to/compas_viewer` over the top.

All mesh booleans (difference, union, chain) use **`compas_manifold`**, which
installs automatically with the requirements.

## Run

Each example opens its own viewer. For a faster loop, launch the persistent
watcher **first** — then every example only writes its scene and the watcher
live-reloads it (geometry + sidebar tree), keeping the camera:

```bash
python examples/example_0_watch_viewer.py           # launch once, leave open
python examples/example_2_floor_model_booleans.py   # build floor model, run booleans
python examples/example_3_orient_to_2d.py           # nest parts to 2D (uv pip install compas_nest)
```

## References

- [compas_nest](https://github.com/petrasvestartas/compas_nest) — 2D nesting of part outlines.
