Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
573 commits
Select commit Hold shift + click to select a range
81a91df
lint/format
gonzalocasas Jun 4, 2025
a75887d
less IPY
yck011522 Jun 4, 2025
ede5ae9
Merge branch 'wip_process' of https://github.com/compas-dev/compas_fa…
yck011522 Jun 4, 2025
ffb214d
trying to bring in free-space planning for pybullet
gonzalocasas Jun 4, 2025
9b2e945
Merge branch 'wip_process' of https://github.com/compas-dev/compas_fa…
gonzalocasas Jun 4, 2025
991985c
example file for pybullet plan motion with config
yck011522 Jun 4, 2025
45078e4
more type hint updates and ipy removal
gonzalocasas Jun 5, 2025
e078c3b
comment out PyBullet's incomplete plan_motion feature
gonzalocasas Jun 5, 2025
7a2f4ee
fix build
gonzalocasas Jun 5, 2025
4ac9a2d
update more type hints
gonzalocasas Jun 5, 2025
2db3be7
more type hint updates
gonzalocasas Jun 5, 2025
bde02b6
updated type hints
gonzalocasas Jun 5, 2025
531e845
update type hints
gonzalocasas Jun 5, 2025
a5331ef
remove future
gonzalocasas Jun 5, 2025
8d81274
some more docs
yck011522 Jun 5, 2025
365f7cd
Merge branch 'wip_process' of https://github.com/compas-dev/compas_fa…
yck011522 Jun 5, 2025
d4a17f5
remove ipy
gonzalocasas Jun 5, 2025
6eca6f5
Merge branch 'wip_process' of https://github.com/compas-dev/compas_fa…
gonzalocasas Jun 5, 2025
7e9d437
remove ipy
gonzalocasas Jun 5, 2025
8df948d
even less ipy
gonzalocasas Jun 5, 2025
66ed2fb
less ipy
gonzalocasas Jun 5, 2025
b4ceddb
bye bye ipy, you will not be missed
gonzalocasas Jun 5, 2025
b026a6a
Removed conditional PY3 code
gonzalocasas Jun 5, 2025
699c58e
old-style classes don't exist anymore
gonzalocasas Jun 5, 2025
f7d60b8
Change RosDistro to enum
gonzalocasas Jun 5, 2025
581a69e
convert TargetMode to enum
gonzalocasas Jun 5, 2025
4cfed9a
Remove duplicate
gonzalocasas Jun 5, 2025
68a9cd7
python 3.9 is unhappy about not using `Union`
gonzalocasas Jun 5, 2025
f7e2e8b
fix doctests
gonzalocasas Jun 5, 2025
9f84e86
Update default options for moveit free-space planner
gonzalocasas Jun 6, 2025
60ef710
Re-add reset planning scene on MoveIt startup
gonzalocasas Jun 6, 2025
0bc10e4
Raise exception on partial trajectories
gonzalocasas Jun 6, 2025
1b4bf7d
arrange imports on examples
gonzalocasas Jun 6, 2025
886316c
Massive update to changelog, huge kudos to @yck011522 👏🍻🚀
gonzalocasas Jun 6, 2025
9923735
Some more docs
yck011522 Jun 6, 2025
1f541a5
Fix a bunch of sphinx errors
yck011522 Jun 8, 2025
bebbf0f
Some GH Examples
yck011522 Jun 8, 2025
f1d1273
Passes client ID to PyBullet functions for Multi-client IK
yijiangh Jul 7, 2025
46f5c8d
Adds verbose option to PyBullet connection
yijiangh Jul 7, 2025
180681b
Updates robot base frame and tool configurations in setting robot cel…
yijiangh Aug 6, 2025
a3317ba
Enhances PyBullet client with debug GUI option
yijiangh Aug 11, 2025
ab444aa
Fixes index error in inverse kinematics
yijiangh Sep 2, 2025
edee1b0
Fix bug in cartesian planner: Merges trajectory point data into robot…
yijiangh Sep 4, 2025
dcfcafa
Merge branch 'main' of https://github.com/compas-dev/compas_fab into …
gonzalocasas Nov 10, 2025
758974b
pin roslibpy to 1.8.1
yijiangh Mar 16, 2026
2c8fa03
fix(pybullet): use live link frame for link-attached rigid bodies
yck011522 May 1, 2026
9e47793
Half way trying to add scene objects to compas_fab
yck011522 May 4, 2026
8db8a14
Finish adding Rhino.Scene Objects
yck011522 May 6, 2026
995122d
refactor(pybullet): improve handling of multiple meshes for rigid bodies
yck011522 May 6, 2026
4721af7
ignore mac crap
gonzalocasas May 15, 2026
d4f2c9d
Unpinned roslibpy to prep for ROS2 and remove outdated ur client module
gonzalocasas May 15, 2026
fa00c40
Migrate to pyproject.toml
gonzalocasas May 15, 2026
2875394
wtf is this file
gonzalocasas May 15, 2026
282f476
Bump `compas_robots` requirements to >= 1
gonzalocasas May 15, 2026
710c954
feat(backends): add ROS 2 / MoveIt 2 docker reference backend
gonzalocasas May 17, 2026
7b026f8
feat(backends): add HttpFileServerLoader for rosbridge URDF/SRDF
gonzalocasas May 17, 2026
a7c4ec1
chore(docs): switch invoke task and dev deps to MkDocs
gonzalocasas May 17, 2026
8c5a750
docs(mkdocs): add MkDocs config and theme assets
gonzalocasas May 17, 2026
e4357b9
docs(mkdocs): port top-level pages to Markdown
gonzalocasas May 17, 2026
8dc9410
docs(mkdocs): add backends and developer guide pages
gonzalocasas May 17, 2026
05f6a77
docs(mkdocs): add API reference pages via mkdocstrings
gonzalocasas May 17, 2026
51a0bb1
chore: strip Sphinx directives from module-level docstrings
gonzalocasas May 17, 2026
1008e94
chore: remove legacy Sphinx documentation sources
gonzalocasas May 17, 2026
1052263
fix(backends): align IK signatures and clear stale docstrings
gonzalocasas May 17, 2026
9f6aa19
docs(backends): add Analytical IK + PyBullet backend page
gonzalocasas May 17, 2026
284168e
docs(backends): standardize per-backend pages with embedded examples
gonzalocasas May 17, 2026
b88c367
docs(backends): rewrite Choosing a backend as a decision guide
gonzalocasas May 17, 2026
19d4cd0
docs: split installation page and add CAD front-ends page
gonzalocasas May 17, 2026
a40b6c4
docs: rebrand tutorial as concepts walkthrough
gonzalocasas May 17, 2026
32fed90
docs: reorient home page as a landing page and update nav
gonzalocasas May 17, 2026
de28ab1
fix(backends): yield collision-free configs in analytical+pybullet IK
gonzalocasas May 17, 2026
e57ac2b
docs(examples): fix broken examples and normalize analytical-backend …
gonzalocasas May 17, 2026
947f2bc
Delete these tests for now
gonzalocasas May 17, 2026
fb24211
Add proper ROS2 detection
gonzalocasas May 17, 2026
90b3e87
Fix tests
gonzalocasas May 17, 2026
bdcc320
Add some tests about ROS distro detection
gonzalocasas May 17, 2026
50153fa
feat(backends.ros): adapt MoveIt messages for ROS 2 over rosbridge
gonzalocasas May 18, 2026
3d1f727
fix(backends.ros): initialise ClientInterface attrs in RosClient
gonzalocasas May 18, 2026
5dc8182
chore(docker): align ros2-ur10e-demo MoveIt launch on UR5
gonzalocasas May 18, 2026
536ab0d
test(backends.ros): ROS 2 integration suite and message-format tests
gonzalocasas May 18, 2026
a6cd748
feat(backends.ros): route trajectory execution via ROS 2 actions
gonzalocasas May 18, 2026
fbdeb95
docs(backends.ros): update message-class doc URLs to Noetic + add ROS 2
gonzalocasas May 18, 2026
f2ec69e
chore(integration): non-colliding default ports for parallel ROS 1 / …
gonzalocasas May 18, 2026
5d42b99
Updates to the docs
gonzalocasas May 18, 2026
9b1dbb3
update
gonzalocasas May 18, 2026
489ed71
test(backends.ros): split live-stack fixtures into ros1_client and ro…
gonzalocasas May 18, 2026
be1a541
chore(integration): split ROS 2 compose into test stack and full demo
gonzalocasas May 18, 2026
5fa5fbf
fix(backends.pybullet): restore lazy import of pybullet C extension
gonzalocasas May 19, 2026
9a77e7d
We need the ur driver in this example
gonzalocasas May 19, 2026
a0ab49e
Default to UR5 because integration tests
gonzalocasas May 19, 2026
8db7101
lint
gonzalocasas May 19, 2026
93bc522
ci: refresh workflows for MkDocs migration and two-stack integration …
gonzalocasas May 19, 2026
82e6731
ci(integration): install the package with [dev] extra, not just dev t…
gonzalocasas May 19, 2026
fb2990b
ci: fixing build
gonzalocasas May 19, 2026
f34ec2a
test: switch pytest to --import-mode=importlib
gonzalocasas May 19, 2026
3ec325c
re-add pybullet in dev reqs
gonzalocasas May 19, 2026
a728c5b
Work around the problem with pybullet not installable on newer mac re…
gonzalocasas May 19, 2026
885a652
Integration tests, but not doctest-modules for now
gonzalocasas May 19, 2026
e49bbb4
Fix doctest and re-enable them in integration testing
gonzalocasas May 19, 2026
9badf61
Update AUTHORS list to markdown and add CITATION.cff
gonzalocasas May 25, 2026
b49c3c9
minor styling
gonzalocasas May 25, 2026
4493b42
ci: drop IronPython Grasshopper track and wire CPython components int…
gonzalocasas May 26, 2026
fcde501
feat(ghpython): redesign Grasshopper components for stateless plannin…
gonzalocasas May 26, 2026
a9bac5b
feat(ghpython): add ROS / MoveIt planning components (Phase 2)
gonzalocasas May 26, 2026
19f39e1
ci: add pythonnet to dev deps for CPython component build
gonzalocasas May 26, 2026
40e5cb8
fix(ghpython): Phase 1 follow-up from testing
gonzalocasas May 28, 2026
f8b2d8e
Avoid deep RobotCellState copy in set_robot_cell_state
yck011522 May 29, 2026
f693423
change(ros): move default HTTP file server port from 9091 to 9190
gonzalocasas May 29, 2026
2a95634
docs(changelog): consolidate Unreleased into single headings
gonzalocasas May 29, 2026
a71f5d6
docker: switch ROS 2 base image from osrf/ros:jazzy-desktop to ros:jazzy
gonzalocasas May 29, 2026
549e3b5
docs(authors): credit Begüm Saral in AUTHORS.md and CITATION.cff
gonzalocasas May 29, 2026
406eb2a
feat(ghpython): add cell construction builders and waypoints (Phase 3)
gonzalocasas May 29, 2026
2b8a588
Delete old tutorial
gonzalocasas May 29, 2026
4529d5a
docs: convert Sphinx/RST role syntax to MkDocs cross-references acros…
gonzalocasas May 29, 2026
98f31d7
docs: fix mkdocstrings cross-reference warnings in compas_fab.robots
gonzalocasas May 29, 2026
6703b00
lint
gonzalocasas May 29, 2026
6cc1c0d
lint
gonzalocasas May 29, 2026
2739ef5
fix(ghpython): default `group` to main planning group in Cf_AttachToo…
gonzalocasas May 29, 2026
ca0b936
fix(ghpython): let InverseKinematicsError propagate in Cf_InverseKine…
gonzalocasas May 29, 2026
cb33612
feat(ghpython): use compas_ghpython error/warning/remark across compo…
gonzalocasas May 29, 2026
261885a
lint
gonzalocasas May 29, 2026
cfd904b
doc corrections
gonzalocasas May 29, 2026
c7713f5
feat(ghpython): auto-dropdown + robust loading in Cf_LoadRobotCellFro…
gonzalocasas May 29, 2026
954ba80
fix(ghpython): schedule a follow-up solve after auto-wiring a Value List
gonzalocasas May 29, 2026
fbf4e91
feat(ghpython): Cf_RobotConfiguration with auto per-joint sliders
gonzalocasas May 30, 2026
9e584a9
fix(ghpython): add missing icon.png for Cf_RobotConfiguration
gonzalocasas May 30, 2026
344084c
ci: wait for rosbridge before running integration doctests
gonzalocasas May 30, 2026
2ffc37f
Revert "ci: wait for rosbridge before running integration doctests"
gonzalocasas May 30, 2026
b64d020
ci: pin roslibpy to gramaziokohler/roslibpy#lifecycle-fixes for valid…
gonzalocasas May 30, 2026
2cc6602
fix(ci): skip the two live RosClient doctests; unpin roslibpy
gonzalocasas May 30, 2026
5168a45
ci: try roslibpy websockets-asyncio branch with ROSLIBPY_TRANSPORT=as…
gonzalocasas May 30, 2026
95a7f8e
fix(ghpython): wire Cf_RobotConfiguration sliders through one list input
gonzalocasas May 30, 2026
61970fa
fix(ghpython): type Cf_RobotConfiguration.joints and drop bogus slice
gonzalocasas May 30, 2026
55a02ed
fix(ghpython): make Cf_RobotConfiguration's slider auto-creation actu…
gonzalocasas May 30, 2026
22d93ac
fix(ghpython): defer slider rebuild to between solves
gonzalocasas May 31, 2026
6e8f0ff
fix(ghpython): Cf_ForwardKinematics docstring breaks Rhino 8 script l…
gonzalocasas May 31, 2026
1d3fc1a
feat(ghpython): Cf_InverseKinematics defaults start_state from planner
gonzalocasas May 31, 2026
e46d609
feat(ghpython): Cf_InverseKinematics auto-wraps Frame/Plane as FrameT…
gonzalocasas May 31, 2026
ff5d48d
Fix missing exception msg
gonzalocasas May 31, 2026
d25a0d8
feat(ghpython): Cf_InverseKinematics warns on wired-but-None inputs
gonzalocasas May 31, 2026
770b085
feat(ghpython): re-render Cf_* icons from new design system + documen…
gonzalocasas Jun 1, 2026
1600b7d
fix(ghpython): line-length lint on Cf_InverseKinematics warnings
gonzalocasas Jun 1, 2026
009bd4e
feat(ghpython): auto touch_links + IK emits updated cell_state
gonzalocasas Jun 1, 2026
8fd18ea
feat(ghpython): tool-id dropdown, link remark, Cf_AddAndAttachTool sh…
gonzalocasas Jun 1, 2026
338d3f1
fix(ghpython): Cf_InverseKinematics catches BackendTargetNotSupported…
gonzalocasas Jun 1, 2026
fecf3cf
Update icon design system
gonzalocasas Jun 1, 2026
22ccde1
fix: URDF/SRDF absolute mesh paths + Cf_PointAxisWaypoints Point3d ty…
gonzalocasas Jun 1, 2026
4b44712
feat(ros): RosClient + Cf_RosClient accept a transport= kwarg
gonzalocasas Jun 1, 2026
a6857a6
feat(ghpython): trajectory viz outputs on planners + Cf_DeconstructTr…
gonzalocasas Jun 1, 2026
d2bf037
fix(planning): attach joint_names per JointTrajectoryPoint in MoveIt …
gonzalocasas Jun 1, 2026
246f0cb
fix(planning): unwrap RosValidationError + drop component error outpu…
gonzalocasas Jun 2, 2026
9c4943b
Update changelog
gonzalocasas Jun 2, 2026
373ac2b
fix missing async wrapper (even if the feature is not yet implemented)
gonzalocasas Jun 2, 2026
0987bf5
Update deconstruct traj component
gonzalocasas Jun 2, 2026
e8a2e2a
feat(robots): MotionPlan assembly layer + JointTrajectory.start_state
gonzalocasas Jun 3, 2026
5383692
Update components & design system
gonzalocasas Jun 3, 2026
ac86711
feat(motion_plan): cell_states output on Cf_MotionPlan for whole-plan…
gonzalocasas Jun 3, 2026
7b5ce12
Unify collision-check option key + add Cf_ToolFromMesh + move Cf_RosC…
gonzalocasas Jun 4, 2026
606e323
Fix and de-duplicate default touch-links resolution
gonzalocasas Jun 4, 2026
bf7d534
PlannerInterface exposes robot_cell + robot_cell_state uniformly
gonzalocasas Jun 4, 2026
c469525
refactor(robots): replace MotionPlan/PlanStep with Action/ActionChain
gonzalocasas Jun 4, 2026
2a6f1f0
feat(ghpython): rename step components to Action builders
gonzalocasas Jun 4, 2026
1c84f56
docs(robots): update MotionPlan references to Action/ActionChain
gonzalocasas Jun 4, 2026
ca8b124
Merge branch 'prep-release' of https://github.com/compas-dev/compas_f…
gonzalocasas Jun 4, 2026
ed7f2a2
ci(build): run build + cpython component build on prep-release PRs
gonzalocasas Jun 4, 2026
b4f2568
feat(icons): update icon design system and re-render library/tool icons
gonzalocasas Jun 4, 2026
6b11932
Not really needed
gonzalocasas Jun 4, 2026
ad51dad
Update output param name of default cell state component
gonzalocasas Jun 4, 2026
65b3424
feat(ghpython): return cell state after RobotConfiguration
gonzalocasas Jun 5, 2026
a3e8acf
chore(ai): no em-dashes in GH components
gonzalocasas Jun 5, 2026
5fcc610
Merge pull request #459 from compas-dev/prep-release-motion-plan-wow
gonzalocasas Jun 5, 2026
ffdaf9d
Make download links relative instead of github links
gonzalocasas Jun 5, 2026
361680b
Bump release action
gonzalocasas Jun 5, 2026
7d6573e
Add print site plugin to mkdocs
gonzalocasas Jun 5, 2026
e1457c8
Fix bump version conf
gonzalocasas Jun 5, 2026
1268b7b
move bump version cfg to pyproject
gonzalocasas Jun 5, 2026
73bbbb8
single quoted
gonzalocasas Jun 5, 2026
898d4a0
uv lock
gonzalocasas Jun 5, 2026
be8d34e
fix old r header
gonzalocasas Jun 5, 2026
3a6e468
chore(release): add pre-release support to bump-my-version
gonzalocasas Jun 5, 2026
1209767
just rc
gonzalocasas Jun 5, 2026
466bcec
chore(release): gh component header update
gonzalocasas Jun 5, 2026
1148f61
Move trajectory visualization onto JointTrajectory
gonzalocasas Jun 5, 2026
ae521dc
Add Rhino system imports to GH components
gonzalocasas Jun 5, 2026
783c869
Tune GH component exposure levels
gonzalocasas Jun 5, 2026
63b2f6b
fix(ghuser): coerce points before trying to cast
gonzalocasas Jun 5, 2026
eaa4355
fix(ghuser) coerce vectors
gonzalocasas Jun 5, 2026
49f8abe
fix(ghuser): coerce meshes
gonzalocasas Jun 5, 2026
8064081
fix(ghuser): do not force collision geometry
gonzalocasas Jun 5, 2026
487fe69
fix(ros): make outgoing message headers JSON-serializable under rosli…
gonzalocasas Jun 10, 2026
941c7b7
fix(pybullet): work without a context manager and in embedded interpr…
gonzalocasas Jun 10, 2026
4bc7c2b
refactor(robots): make FrameInterpolator and PointAxisInterpolator pu…
gonzalocasas Jun 10, 2026
3d119c5
docs(api): export backend classes that were missing from the public s…
gonzalocasas Jun 10, 2026
91c0c80
feat(ghuser): register tools and rigid bodies as part of Load Robot Cell
gonzalocasas Jun 10, 2026
ed64ca5
feat(ghuser): reorder builder inputs and add a meshes preview output
gonzalocasas Jun 10, 2026
002dee9
feat(ghuser): Attach Tool To Robot validates the tool id and defaults…
gonzalocasas Jun 10, 2026
2813ccc
feat(ghuser): auto-create a target_mode dropdown from the TargetMode …
gonzalocasas Jun 10, 2026
6a55fdd
fix(ghuser): place auto-created value-list dropdowns next to the input
gonzalocasas Jun 10, 2026
807e421
feat(ghuser): add PyBullet Planner and Analytical PyBullet Planner co…
gonzalocasas Jun 10, 2026
73e4aa5
chore(scripts): add helpers to build/install GH userobjects
gonzalocasas Jun 10, 2026
5ee0fcb
docs(api): restructure the API reference into Core / Integrations / E…
gonzalocasas Jun 10, 2026
ea3c2ca
chore(docs): docstring crossrefs, wording, and minor cleanups
gonzalocasas Jun 10, 2026
032bcba
docs: update changelog for the GH redesign, backend fixes and API reorg
gonzalocasas Jun 10, 2026
6d82fb5
chore(test): move import up
gonzalocasas Jun 10, 2026
b2a5fb8
ocd
gonzalocasas Jun 10, 2026
bace853
feat(ghuser): add Deconstruction Robot Cell component
gonzalocasas Jun 10, 2026
3947978
feat(ghuser): toggle load_geometry and replace ROS load with reload
gonzalocasas Jun 11, 2026
697dc14
chore(ghuser): change exposure
gonzalocasas Jun 11, 2026
badf7fb
ocd
gonzalocasas Jun 11, 2026
470a6d1
feat(design): update icon system
gonzalocasas Jun 11, 2026
3d9f7b4
docs(api): move robots docstring types into signature type hints
gonzalocasas Jun 11, 2026
1f1f990
docs(api): move backends docstring types into signature type hints
gonzalocasas Jun 11, 2026
579c03f
docs(api): move scene/ghpython/utilities docstring types into type hints
gonzalocasas Jun 11, 2026
82fccea
docs(api): annotate remaining signatures so their docstring types mov…
gonzalocasas Jun 11, 2026
20e5549
docs: smaller fixes
gonzalocasas Jun 11, 2026
69358f4
move dectr planner lower in exposure
gonzalocasas Jun 11, 2026
d356a9c
docs(icons): Move ROS Client to ROS category
gonzalocasas Jun 11, 2026
59b754f
fix(pybullet): bind pre-imported pybullet so the client works in Rhino
gonzalocasas Jun 11, 2026
e2226ec
fix(ghuser): stop auto-created dropdowns/toggles duplicating on recom…
gonzalocasas Jun 11, 2026
fc3a2ee
fix(ghuser): Visualize Robot Cell falls back to the default cell state
gonzalocasas Jun 11, 2026
65af5fe
fix(ghuser): Deconstruct Planner no longer outputs the cell state
gonzalocasas Jun 11, 2026
0f12de0
fix(robots): offset the library floor below Z=0 to clear the robot base
gonzalocasas Jun 11, 2026
fa0a504
docs(examples): add a floor to the PyBullet IK example
gonzalocasas Jun 11, 2026
74a990d
docs: changelog entries for the GH and PyBullet fixes
gonzalocasas Jun 11, 2026
036182d
refactor(robots): add RobotCell.structural_signature(), reuse in Acti…
gonzalocasas Jun 11, 2026
410d5ce
feat(ghuser): merge ROS cell loading into the MoveIt Planner component
gonzalocasas Jun 11, 2026
d074bd0
feat(ghuser): auto-create a connect toggle (default off) on ROS Client
gonzalocasas Jun 11, 2026
ab19f33
docs: changelog for the MoveIt Planner redesign and related GH changes
gonzalocasas Jun 11, 2026
daf27ae
fix(ghuser): guard motion-planning viz against a None trajectory
gonzalocasas Jun 11, 2026
c3587cd
docs: fix line length
gonzalocasas Jun 11, 2026
06766a9
feat(ros): add MoveItCheckCollision via /check_state_validity
gonzalocasas Jun 11, 2026
9b07d10
feat(ghuser): explain IK failure with a collision check on the start …
gonzalocasas Jun 11, 2026
b9a9f23
docs: changelog for MoveItCheckCollision and the IK collision diagnostic
gonzalocasas Jun 11, 2026
ba92cb1
feat(ghuser): shared failure diagnostics + debug_info output for plan…
gonzalocasas Jun 11, 2026
a659e78
docs: changelog for shared planner failure diagnostics and None-traje…
gonzalocasas Jun 11, 2026
cc8d111
feat(robots): to_frames_and_polyline honors a target_mode
gonzalocasas Jun 11, 2026
62c1c22
docs: changelog for target_mode in to_frames_and_polyline
gonzalocasas Jun 11, 2026
d98595c
lint
gonzalocasas Jun 11, 2026
fe96d34
fix(ros): forward **kwargs to roslibpy.Ros so transport is optional
gonzalocasas Jun 17, 2026
4cd775e
docs: remove unreferenced legacy GH example scripts from ros/files
gonzalocasas Jun 17, 2026
af4977d
Remove old example file
gonzalocasas Jun 17, 2026
0e72740
Add Grasshopper basic doc
gonzalocasas Jun 17, 2026
4647570
Update icons and icon design system
gonzalocasas Jun 17, 2026
248a1cf
Delete old example files
gonzalocasas Jun 17, 2026
6d53d3a
Add super basic example
gonzalocasas Jun 17, 2026
f0fad73
Add GH example #1
gonzalocasas Jun 17, 2026
9dee6f6
Add GH examples
gonzalocasas Jun 18, 2026
eb342de
Fixes to docs
gonzalocasas Jun 18, 2026
86b2843
Update the r header in GH examples
gonzalocasas Jun 18, 2026
64d57bd
fix pytest stuff
gonzalocasas Jun 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
26 changes: 0 additions & 26 deletions .bumpversion.cfg

This file was deleted.

14 changes: 0 additions & 14 deletions .deepsource.toml

This file was deleted.

31 changes: 28 additions & 3 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,45 @@ on:
push:
branches:
- main
- wip
pull_request:
branches:
- main

jobs:
build:
if: "!contains(github.event.pull_request.labels.*.name, 'docs-only')"
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python: ['3.8', '3.9', '3.10']
python: ['3.9', '3.13']

steps:
- uses: compas-dev/compas-actions.build@v3
- uses: compas-dev/compas-actions.build@v5
env:
CFLAGS: ${{ startsWith(matrix.os, 'macos') && '-fno-define-target-os-macros' || '' }}
with:
python: ${{ matrix.python }}
invoke_lint: true

build-cpython-components:
runs-on: windows-latest

steps:
- name: Checkout repo
uses: actions/checkout@v6

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e .[dev]

- name: Create CPython Grasshopper user objects
run: |
invoke build-cpython-ghuser-components

- uses: actions/upload-artifact@v5
with:
name: compas_fab_components
path: src/compas_fab/ghpython/components_cpython/ghuser
7 changes: 6 additions & 1 deletion .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ on:
push:
branches:
- main
- LTS-main-1.x
tags:
- 'v*'
pull_request_review:
Expand All @@ -14,7 +15,11 @@ jobs:
if: github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v') || (github.event_name == 'pull_request_review' && github.event.review.state == 'approved')
runs-on: ubuntu-latest
steps:
- uses: compas-dev/compas-actions.docs@v3
- uses: compas-dev/compas-actions.docs@v5
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
doc_url: https://compas.dev/compas_fab
# Site is built with MkDocs (via `invoke docs`); `v5` of the action
# added the `generator` switch so it can deploy MkDocs sites in
# addition to the original Sphinx flow.
generator: mkdocs
53 changes: 37 additions & 16 deletions .github/workflows/integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,34 +4,55 @@ on:
push:
branches:
- main
- wip
pull_request:
branches:
- main
- LTS-main-1.x

jobs:
build:
name: ubuntu-py38-integration
name: ubuntu-py39-integration
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python 3.8
uses: actions/setup-python@v2
- uses: actions/checkout@v6
- name: Set up Python 3.9
uses: actions/setup-python@v5
with:
python-version: '3.8'
- name: Set up docker containers
python-version: '3.9'

- name: Bring up both ROS stacks
# Defaults: ROS 1 rosbridge on 9090, ROS 2 rosbridge on 9091, ROS 2
# HTTP assets on 9092. See `tests/integration_setup/README.md`.
run: |
docker-compose -f "tests/integration_setup/docker-compose.yml" up -d --build
docker compose -f tests/integration_setup/docker-compose.yml up -d --build
docker compose -f tests/integration_setup/docker-compose-ros2.yml up -d --build
docker ps -a

- name: Install dependencies
# `pip install -r requirements-dev.txt` alone installs the dev tools
# but NOT the package itself nor its runtime deps. The top-level
# `conftest.py` then crashes on `from twisted.internet import ...`
# because twisted only arrives transitively via `roslibpy` (a runtime
# dep). Installing the package with the `[dev]` extra pulls both.
run: |
python -m pip install --upgrade pip
python -m pip install wheel
- name: Install
run: |
python -m pip install --no-cache-dir -r requirements-dev.txt
- name: Run integration tests
python -m pip install --upgrade pip wheel
python -m pip install --no-cache-dir -e ".[dev]"

- name: Run tests + doctests
# `COMPAS_FAB_RUN_ROS_INTEGRATION_TESTS=1` opts the `ros1_client` /
# `ros2_client` fixtures into actually connecting (otherwise every
# integration test is skipped). `--doctest-modules` picks up
# doctests embedded in `src/compas_fab/` modules.
env:
COMPAS_FAB_RUN_ROS_INTEGRATION_TESTS: "1"
# Opt the whole suite into roslibpy's new asyncio transport
# (websockets-based) instead of the historical twisted reactor.
ROSLIBPY_TRANSPORT: asyncio
run: |
pytest --doctest-modules
pytest docs

- name: Tear down docker containers
if: always()
run: |
docker-compose -f "tests/integration_setup/docker-compose.yml" down
docker compose -f tests/integration_setup/docker-compose.yml down
docker compose -f tests/integration_setup/docker-compose-ros2.yml down
63 changes: 0 additions & 63 deletions .github/workflows/ironpython.yml

This file was deleted.

3 changes: 2 additions & 1 deletion .github/workflows/pr-checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,14 @@ on:
types: [assigned, opened, synchronize, reopened, labeled, unlabeled]
branches:
- main
- LTS-main-1.x

jobs:
build:
name: Check Actions
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v6
- name: Changelog check
uses: Zomzog/changelog-checker@v1.1.0
with:
Expand Down
28 changes: 2 additions & 26 deletions .github/workflows/publish_yak.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,41 +29,17 @@ jobs:
}

- name: Checkout repo
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements-dev.txt
pip install -e .[dev]

- name: Create CPython Grasshopper user objects
run: |
invoke build-cpython-ghuser-components

- name: Create IronPython Grasshopper user objects
run: |
choco install ironpython --version=2.7.8.1
invoke clean
invoke build-ghuser-components

- name: Create Rhino7 Yak package
shell: pwsh
run: |
invoke yakerize -m $Env:YAK_TEMPLATE\manifest.yml -l $Env:YAK_TEMPLATE\icon.png -g $Env:USER_OBJECTS -t rh7
env:
USER_OBJECTS: src\compas_fab\ghpython\components\ghuser
YAK_TEMPLATE: src\compas_fab\ghpython\yak_template

- name: Publish to Yak server (Rhino 7)
shell: pwsh
run: |
$test_flag = if ($Env:TEST_FLAG) { $Env:TEST_FLAG } else { "" }
$file = Get-ChildItem -Path dist\yak_package\*rh7*.yak -File | Select-Object -ExpandProperty Name
$command = "invoke publish-yak -y dist\yak_package\$file $test_flag".Trim()
Invoke-Expression $command
env:
YAK_TOKEN: ${{ secrets.YAK_DF_TOKEN }}

- name: Create Rhino8 Yak package
shell: pwsh
run: |
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python: ['3.8', '3.9', '3.10']
python: ['3.9', '3.10', '3.11', '3.12', '3.13']

steps:
- uses: compas-dev/compas-actions.build@v3
Expand All @@ -24,13 +24,13 @@ jobs:
needs: build
runs-on: windows-latest
steps:
- uses: compas-dev/compas-actions.publish@v2
- uses: compas-dev/compas-actions.publish@v3
with:
pypi_token: ${{ secrets.PYPI_PASSWORD }}
github_token: ${{ secrets.GITHUB_TOKEN }}
build_ghpython_components: true
gh_source: src/compas_fab/ghpython/components
gh_target: src/compas_fab/ghpython/components/ghuser
gh_source: src/compas_fab/ghpython/components_cpython
gh_target: src/compas_fab/ghpython/components_cpython/ghuser
gh_prefix: "COMPAS FAB: "
gh_interpreter: "ironpython"
gh_interpreter: "cpython"
release_name_prefix: COMPAS FAB
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,7 @@ docs/generated/*

temp/**
!temp/.gitkeep
.DS_Store

# Grasshopper generated objects
src/compas_fab/ghpython/components/ghuser/*.ghuser
src/compas_fab/ghpython/components_cpython/ghuser/*.ghuser
19 changes: 19 additions & 0 deletions AUTHORS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Authors

- Gramazio Kohler Research [@gramaziokohler](https://github.com/gramaziokohler)
- Romana Rust <<rust@arch.ethz.ch>> [@romanarust](https://github.com/romanarust)
- Gonzalo Casas <<casas@arch.ethz.ch>> [@gonzalocasas](https://github.com/gonzalocasas)
- Stefana Parascho <<parascho@arch.ethz.ch>> [@stefanaparascho](https://github.com/stefanaparascho)
- David Jenny <<jenny@arch.ethz.ch>> [@DavidJenny](https://github.com/DavidJenny)
- Kathrin Dörfler <<doerfler@arch.ethz.ch>> [@kathrindoerfler](https://github.com/kathrindoerfler)
- Matthias Helmreich <<helmreich@arch.ethz.ch>> [@mhelmrei](https://github.com/mhelmrei)
- Augusto Gandia <<gandia@arch.ethz.ch>> [@augustogandia](https://github.com/augustogandia)
- Zhao Ma <<ma@arch.ethz.ch>> [@xarthurx](https://github.com/xarthurx)
- Inés Ariza <<ariza@arch.ethz.ch>> [@inesariza](https://github.com/inesariza)
- Matteo Pacher <<pacher@arch.ethz.ch>> [@matteo-pacher](https://github.com/matteo-pacher)
- Beverly Lytle <<lytle@arch.ethz.ch>> [@beverlylytle](https://github.com/beverlylytle)
- Yijiang Huang <<yijiangh@mit.edu>> [@yijiangh](https://github.com/yijiangh)
- Chen Kasirer <<kasirer@arch.ethz.ch>> [@chenkasirer](https://github.com/chenkasirer)
- Edvard Bruun <<ebruun@princeton.edu>> [@ebruun](https://github.com/ebruun)
- Victor Pok Yin Leung <<leung@arch.ethz.ch>> [@yck011522](https://github.com/yck011522)
- Begüm Saral <<begum.saral@tum.de>> [@begums](https://github.com/begums)
Loading
Loading