Changelog¤
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased¤
First release on PyPI. It picks up from commit 66024561 (April 2022), the last commit before this rewrite.
Added¤
- Frame-field route:
compas_singular.framefield.FieldDecompositionsolves a cross field, traces separatrices into a coarse layout and densifies along the field. It falls back to simpler layouts when a step fails and reports that throughwarnings(),route()andquality(). - Curve (line) and point features on the skeleton route; curved boundaries and
edges_to_curvescarried through densification. - Face patterns (
ortho,diagonal,fan) with automatic strip-density reconciliation. - Symmetry:
find_symmetry,symmetry_unitandexpand_symmetricallyon either route. - Layout and mesh editing without CAD:
compas_singular.editing(CoarseEditor,DenseMeshEditor) and one strip grammar for adding and removing strips. - Coarse layouts from drawn polylines (
from_coarse_polylines). - Constrained smoothing with sliding boundaries, and optional compas_fd smoothing (
[fd]extra). SingularSessionand the typed settings model (compas_singular.session,compas_singular.settings).- Rhino 8 support:
compas_singular.rhino(session, scene objects, project layers) and the command scripts inrhino_plugin/commands/. - An MCP server (
python -m compas_singular.mcp) exposing the workflow as tools. - Extras
[viewer],[fd]and[rhino].
Changed¤
- Ported to COMPAS 2 (tested with compas 2.15.1). Requires Python 3.9 or later.
numpyandscipyare declared dependencies;networkxis no longer one.- The version comes from the git tags (setuptools-scm) and starts at 0.2.0, above upstream's last
release (0.1.5). Every commit after a tag has its own version, so
pip install -Ufrom git updates. - Packaging follows compas_model: dependencies, pytest, bump-my-version and ruff are configured in
pyproject.toml;tasks.pyusescompas_invocations2;environment.ymlcreates thesingular-devconda environment.setup.py,setup.cfg,pytest.ini,.bumpversion.cfgand therequirements*.txtfiles are removed. - The documentation is built with MkDocs (Material + mkdocstrings) instead of Sphinx, and deployed by
mkdocs gh-deployon every push tomain; PRs tomainrunmkdocs build --strict. The site moved from.../compas_singular/latest/to.../compas_singular/, andlatest/redirects there. - Docstrings are plain numpy style: the Sphinx roles (
:class:etc.) and theautosummarylistings in the__init__.pyfiles are gone, and 19 parameter names that did not match their signatures are fixed.
Removed¤
- COMPAS 1 Rhino modules (
rhino.artists,rhino.grasshopper,rhino.helpers.tna). - The singularity-block and guide-line modules.
- The empty
rhino.objectspackage. algorithms.unusedandrhino.geometryare no longer shipped in the package;rhino.geometryreturns once it is ported to COMPAS 2.