Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ADD: tree_packing.py #13

Merged
merged 50 commits into from
Sep 5, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
9459241
ADD: tree_packing.py
DamienGilliard Jul 30, 2024
29ae3e2
WIP: skeleton packing added, but results not good yet
DamienGilliard Aug 4, 2024
f57b233
FIX: mismatch in the cumulative lengths
DamienGilliard Aug 5, 2024
387b462
UPDATE: change the scoring metrics for registration result
DamienGilliard Aug 5, 2024
6ece041
UPDATE: README with latest skeleton packing
DamienGilliard Aug 6, 2024
09c8cd3
ADD: two additional trees in database
DamienGilliard Aug 6, 2024
2b940f2
UPDATE: small fixes and documentation improvements to utils
DamienGilliard Aug 6, 2024
7351aac
UPDATE: adaptation of function_3 to tree skeleton packing
DamienGilliard Aug 6, 2024
f4e512e
UPDATE: tree skeleton is adapted to connection nodes of element
DamienGilliard Aug 8, 2024
848bc85
FIX: separate Element and Model classes in different modules to avoid…
DamienGilliard Aug 8, 2024
723d316
UPDATE: database .fs.lock file
DamienGilliard Aug 8, 2024
143f1ac
UPDATE: looser criteria for intersection of wireframe model
DamienGilliard Aug 14, 2024
a3cae2c
FIX: initial translation made using skeleton and not full pc
DamienGilliard Aug 14, 2024
5ef4df3
FIX: element module correctly used after transition
DamienGilliard Aug 14, 2024
6faeff2
UPDATE: guidelines for PR
DamienGilliard Aug 14, 2024
332a4b3
Merge branch 'main' into tree_packing
DamienGilliard Aug 15, 2024
3c18d81
FIX: database with proper tree names
DamienGilliard Aug 15, 2024
e0229e4
UPDATE: add a __del__ to the database reader to avoid leaving the dat…
DamienGilliard Aug 26, 2024
e570558
WIP-ADD: packing combinatorics and manipulation
DamienGilliard Aug 26, 2024
0960c04
UPDATE: apply changes made to packing combinatorics and manipulations
DamienGilliard Aug 26, 2024
b877a17
WIP: database_reader.py with closing method activated at garbage coll…
DamienGilliard Aug 26, 2024
f67f611
WIP: trim is now a method of Tree class + improvements on matxh skele…
DamienGilliard Aug 26, 2024
1e17015
WIP: best tree-element matching improved with match skeleton + other …
DamienGilliard Aug 26, 2024
f5b23c7
WIP-UPDATE: Tree class now with trim method
DamienGilliard Aug 26, 2024
7553273
FIX: small issue wuth tree names. They were all 'tree_0'
DamienGilliard Aug 26, 2024
af53a2c
WIP: minor tweaks during current debugging
DamienGilliard Aug 26, 2024
1135ec8
FIX-CAP: database correctly updated when a tree part is selected to b…
DamienGilliard Aug 27, 2024
22465aa
WIP: commit before merge
DamienGilliard Aug 27, 2024
6a54c10
Merge branch 'tree_packing' of github.com:ibois-epfl/Carnutes into tr…
DamienGilliard Aug 27, 2024
b73dc04
UPDATE: Element class now with create_bounding_cylinder() method for …
DamienGilliard Aug 27, 2024
2971989
WIP: add element_based_iterative_matching() method. must be integrate…
DamienGilliard Aug 27, 2024
18df5b2
UPDATE: add sort_points() method to geometry module
DamienGilliard Aug 28, 2024
e5e4b33
ADD-WIP: interact_with_rhino module for all such as create_model_fro…
DamienGilliard Aug 28, 2024
55a01f8
FIX: remove prints that cause memory issues with o3d and numpy
DamienGilliard Aug 28, 2024
7248346
UPDATE: implement cleanups done to different modules for more flexibl…
DamienGilliard Aug 28, 2024
793a8a7
ADD: geometrical_operation.py for all general geometrical utilities s…
DamienGilliard Sep 4, 2024
cfeef2d
UPDATE: tests adapted to include geometrical operations
DamienGilliard Sep 4, 2024
a89c1ff
UPDATE: small changes to database content
DamienGilliard Sep 4, 2024
248759a
Merge branch 'tree_packing' of github.com:ibois-epfl/Carnutes into tr…
DamienGilliard Sep 4, 2024
239ba9d
FIX: failed tree query does not break the database .lock anymore
DamienGilliard Sep 4, 2024
3c1a21a
UPDATE: add diameter requirement in tree selection
DamienGilliard Sep 4, 2024
74d7614
ADD: reset_database.py function
DamienGilliard Sep 4, 2024
29ec138
FIX: properly close database after creation
DamienGilliard Sep 4, 2024
312b587
UPDATE: rhino container file
DamienGilliard Sep 4, 2024
cd69174
ADD: many trees in the dataset
DamienGilliard Sep 5, 2024
7326a5b
FIX: removing unneeded prints when computing skeleton
DamienGilliard Sep 5, 2024
4a2e3d4
CAP: General cleanup and core functionalities of Carnutes working
DamienGilliard Sep 5, 2024
0824c7e
FIX: pre-commit's work
DamienGilliard Sep 5, 2024
30ab2c6
FIX: pre-commit ran on all files in the repo. it's all shiny now
DamienGilliard Sep 5, 2024
8166a3f
solve conflict
DamienGilliard Sep 5, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions .github/workflows/test_geo_basics.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,9 @@ jobs:
with:
activate-environment: Carnutes
environment-file: environment.yml

- name: activate conda environment
run: conda activate Carnutes

- name: run tests
run: pytest tests/test_geometry_basics.py

2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -162,4 +162,4 @@ cython_debug/
#.idea/

# MacOS specific
.DS_Store
.DS_Store
11 changes: 9 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
As this project is seen as an experiment in parallel to an architecture studio, this repo is not going to be maintained on the long term. Another repository will be opened when the long-term code is developped, as part of Damien Gilliard's PhD thesis. Therefore, any contribution made by outside people is welcome but keep in mind the "one shot" nature of this repository.

# Contributing
To contribute to this repo, open a new branch, create a pull request, push your modifications, and explain in the thread what you want to change / add.
To contribute to this repo, open a new branch, create a pull request, push your modifications, and explain in the thread what you want to change / add.

The commit message guidelines are:
```bash
Expand All @@ -17,6 +17,13 @@ git commit -m "REFACTOR:<description>" <--- for refactored code
git commit -m "MERGE:<description>" <--- for merging operations
```

The description of the pull request should ideally contain:
- An explicit name. e.g. "improvement of registration of tree skeleton using pcl ICP registration" , and not "registration icp pcl"
- A description in a few lines of the changes made.
- A check if a test was adapted or created
- If it is linked to an issue, mark it as such in the Developmement section of the PR.
- As long as it is under development, mark it as Draft

# Naming convention
All code is in python
[usual python naming convention](https://peps.python.org/pep-0008/#naming-conventions)
Expand Down Expand Up @@ -58,4 +65,4 @@ class MyClass(object):
"""
a_lot = 1
return a_lot
```
```
155 changes: 113 additions & 42 deletions Carnutes.rhc
Original file line number Diff line number Diff line change
@@ -1,29 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<!--This file was generated by Rhinoceros, DO NOT modify this file-->
<RhinoUI major_ver="1" minor_ver="0" created_on_platform="Mac" created_on_rhino_version="8.9.24194.18122" name="Standard Toolbars">
<RhinoUI major_ver="1" minor_ver="0" created_on_platform="Mac" created_on_rhino_version="8.10.24228.13001" name="Standard Toolbars">
<!--Window Layout display name for this file-->
<name>
<locale_1033>Standard Toolbars</locale_1033>
</name>
<!--Tab panel collection definitions and dock bar placement information-->
<dock_bars major_ver="1" minor_ver="0">
<dock_bar guid="171011a9-a956-41ee-853e-3ccc0c0db1d8" source_group_file="c7da84fc-2991-4824-832a-4f2509bd0ede" source_group="ac3566f9-fe75-4258-9210-b1e9c05a5881">
<placement dock_location="Top" recent_dock_location="Top" dock_band_size="36,48" dock_band_item_size="1,-1" docked_placement="0,0" float_point="215,77" float_size="1000,75" visible="True" />
<placement dock_location="Top" recent_dock_location="Top" dock_band_size="1977,48" dock_band_item_size="1,-1" docked_placement="1,0" float_point="215,77" float_size="1468,675" visible="True" />
<tabs name="Standard Toolbars" selected_item="13738460-8ea9-470b-803c-527e8a1828ce" display_style="Text">
<name>
<locale_1033>Standard Toolbars</locale_1033>
<locale_1036>Barres d'outils Standard</locale_1036>
<locale_1029>Standardní palety nástrojů</locale_1029>
<locale_1031>Standard-Werkzeugleisten</locale_1031>
<locale_1034>Barras de herramientas estándar</locale_1034>
<locale_1040>Barre degli strumenti standard</locale_1040>
<locale_1041>標準ツールバー</locale_1041>
<locale_1042>표준 도구모음</locale_1042>
<locale_1045>Standardowe paski narzędzi</locale_1045>
<locale_2070>Barras de Ferramentas Standard</locale_2070>
<locale_2052>标准工具列</locale_2052>
<locale_1028>標準工具列</locale_1028>
<locale_1049>Стандартные панели инструментов</locale_1049>
</name>
<tool_bar guid="4bb9c817-d19f-45fd-8af2-39e9805f3e9f" file="c7da84fc-2991-4824-832a-4f2509bd0ede" side_bar="42b36785-e767-4c66-8704-4d828bcb0225" side_bar_file="c7da84fc-2991-4824-832a-4f2509bd0ede" />
<tool_bar guid="32318c40-46e9-4aa3-8f73-09371ec27a4d" file="c7da84fc-2991-4824-832a-4f2509bd0ede" side_bar="42b36785-e767-4c66-8704-4d828bcb0225" side_bar_file="c7da84fc-2991-4824-832a-4f2509bd0ede" />
Expand All @@ -38,11 +26,10 @@
<tool_bar guid="4cd9a071-9337-4389-aa40-2a20f570da3b" file="c7da84fc-2991-4824-832a-4f2509bd0ede" side_bar="625e34b2-3b19-4aba-91c2-94f79e2e1d91" side_bar_file="c7da84fc-2991-4824-832a-4f2509bd0ede" />
<tool_bar guid="44619cf6-b73a-46ea-93f8-46f1fa333115" file="c7da84fc-2991-4824-832a-4f2509bd0ede" side_bar="12428ca8-b9f4-4954-8f6e-8a139226b383" side_bar_file="c7da84fc-2991-4824-832a-4f2509bd0ede" />
<tool_bar guid="a5379863-ee51-4b77-ab0c-44ee93c92ca3" file="c7da84fc-2991-4824-832a-4f2509bd0ede" side_bar="fa6d5bcc-8cd8-416b-8701-f89bd697e94d" side_bar_file="c7da84fc-2991-4824-832a-4f2509bd0ede" />
<panel guid="1d3d1785-2332-428b-a838-b2fe39ec50f4" plug_in="a6f26df9-1ffd-4cf3-b1ec-a11a28a40892" name="Command History" />
<tool_bar guid="d0a817a1-dea9-4e03-89e3-0d63d99b5e51" file="c7da84fc-2991-4824-832a-4f2509bd0ede" side_bar="54dcdb3a-f098-49a4-9947-d5605d675be3" side_bar_file="c7da84fc-2991-4824-832a-4f2509bd0ede" />
<tool_bar guid="90fd89fc-e41f-49cc-bcf0-29e0d58017a1" file="c7da84fc-2991-4824-832a-4f2509bd0ede" side_bar_colletion="4b37b788-3a60-4c54-a4be-67e756115945" />
<tool_bar guid="16770b13-f7fb-4060-a6e6-607f90dd8bb3" file="c7da84fc-2991-4824-832a-4f2509bd0ede" side_bar_file="c7da84fc-2991-4824-832a-4f2509bd0ede" />
<tool_bar guid="13738460-8ea9-470b-803c-527e8a1828ce" file="c7da84fc-2991-4824-832a-4f2509bd0ede" />
<tool_bar guid="16770b13-f7fb-4060-a6e6-607f90dd8bb3" file="c7da84fc-2991-4824-832a-4f2509bd0ede" side_bar="42b36785-e767-4c66-8704-4d828bcb0225" side_bar_file="c7da84fc-2991-4824-832a-4f2509bd0ede" />
<panel guid="52606b82-9bc4-493a-b2b4-d2073d995529" plug_in="02bf604d-799c-4cc2-830e-8d72f21b14b7" name="Macro Editor" />
</tabs>
</dock_bar>
Expand All @@ -57,40 +44,115 @@
<extend_rhino_menus />
<menus />
<tool_bars>
<tool_bar source_guid="6df8b63c-d9b5-4631-b2c8-24019573876b" modified="True" LastTornOffSize="103,116">
<tool_bar_items>
<tool_bar_item source_guid="182a725e-e9b5-4f9f-aeb1-ba1101da7b30" />
<tool_bar_item source_guid="59e8de3c-7ec7-4d8d-ba2f-98ac825ea233" />
<tool_bar_item source_guid="6312d993-175d-45b0-8299-7e717fe7dc80" />
<tool_bar_item source_guid="0859ece0-37e7-49f3-ad39-c766f7d2e1fd" />
<tool_bar_item source_guid="d084d8c4-cf8e-4017-aef6-47878af8c215" />
<tool_bar_item source_guid="e7fb3125-0bd9-45fe-b26d-14c27178cdaa" />
<tool_bar_item source_guid="bd5c12da-4d05-4cc7-86ff-aca1a3485740" />
<tool_bar_item source_guid="a09d076a-4830-46de-a7d8-17c978487ea2" />
<tool_bar_item source_guid="6b60c495-428a-4d19-9186-ce2fb38d56b9" />
</tool_bar_items>
</tool_bar>
<tool_bar source_guid="00211289-60a5-460b-88dc-cc667b234dbd" modified="True">
<tool_bar_items>
<tool_bar_item source_guid="08f422b0-883d-407e-9b32-0c7c2abdc566" />
<tool_bar_item source_guid="b7d32fef-c2b5-4e3c-be1a-1ba978a71713" />
<tool_bar_item />
<tool_bar_item />
<tool_bar_item />
<tool_bar_item source_guid="182a725e-e9b5-4f9f-aeb1-ba1101da7b30" />
<tool_bar_item source_guid="e1769652-07b4-40f9-9b08-6b9679c6e479" />
<tool_bar_item source_guid="9058ba63-aa75-4979-898a-37958da889ab" />
<tool_bar_item source_guid="d3c081db-0bf3-4af3-9c43-cff6680c7625" />
<tool_bar_item source_guid="cdef77dc-3471-4144-ad41-e2a46f4cd4b1" />
</tool_bar_items>
</tool_bar>
<tool_bar guid="13738460-8ea9-470b-803c-527e8a1828ce" modified="True" bitmap_guid="3af63880-438e-4c87-89c6-d3ab68bafad9" item_display_style="BitmapAndText">
<text>
<locale_1033>Carnutes</locale_1033>
</text>
<tool_bar_items>
<tool_bar_item guid="16f2ac30-ab7b-4a67-8c82-8f727cd5e6e1" modified="True" display_style_from_parent="False">
<left_macro guid="de61ca19-e804-4e61-8e94-3e505e8b3aff" modified="True" />
</tool_bar_item>
<tool_bar_item guid="f45f9d11-d64f-4779-9727-63b07ec8f82f" modified="True" display_style_from_parent="False">
<left_macro guid="bfac1506-2819-4cd8-87d1-5524068b3945" modified="True" />
</tool_bar_item>
<tool_bar_item guid="a7e2c1ad-9c9c-4270-b029-814203692037" modified="True" button_type="Separator" />
<tool_bar_item guid="16f2ac30-ab7b-4a67-8c82-8f727cd5e6e1" modified="True" display_style_from_parent="False">
<left_macro guid="de61ca19-e804-4e61-8e94-3e505e8b3aff" modified="True" />
</tool_bar_item>
<tool_bar_item guid="8608f3aa-8f9a-4606-a28b-538a0dcee1cc" modified="True" display_style_from_parent="False">
<left_macro guid="56c650a8-7ad6-4ddd-8b3c-a1749276257f" modified="True" />
<right_macro guid="add7d4fc-9918-408c-8447-10f0b9150a9b" modified="True" />
</tool_bar_item>
</tool_bar_items>
</tool_bar>
<tool_bar source_guid="00211289-60a5-460b-88dc-cc667b234dbd" modified="True">
<tool_bar_items>
<tool_bar_item />
<tool_bar_item source_guid="08f422b0-883d-407e-9b32-0c7c2abdc566" />
<tool_bar_item source_guid="e1769652-07b4-40f9-9b08-6b9679c6e479" />
<tool_bar_item source_guid="f6d7af12-0c34-4d5b-b325-7132167a85c8" />
<tool_bar_item source_guid="4ca65141-12cd-46e4-90b7-86f4e106688c" />
<tool_bar_item source_guid="292e811f-0fba-47bf-af32-776b7cf125b5" />
<tool_bar_item source_guid="4d9035f6-9a34-47bd-95e5-42bd38f2ced7" />
<tool_bar_item source_guid="71eac7d7-2ec3-4d82-9ae3-72ec4687a661" />
<tool_bar_item source_guid="593ef621-4288-4c5b-af19-f6cd726b446e" />
<tool_bar_item source_guid="338f5655-a0a2-4839-9114-ce51dc176fa4" />
<tool_bar_item guid="e2b24524-a1a3-4003-ae92-a1bc382536cd" modified="True">
<left_macro guid="80421b7e-2cdf-4b51-aee1-c68c81f4c43c" modified="True" />
</tool_bar_item>
</tool_bar_items>
</tool_bar>
</tool_bars>
<icons>
<icon guid="53b742dd-0cbc-471f-9f0f-d2e0b965e02e" modified="True">
<svg_name>e47f272f-49b5-4aab-a482-0f28ab7347b5.svg</svg_name>
<light_svg>&lt;svg
width="24.564278mm"
height="25.531645mm"
viewBox="0 0 24.564278 25.531645"
version="1.1"
id="svg1"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"&gt;
&lt;defs
id="defs1" /&gt;
&lt;g
id="layer1"
transform="translate(-3.0578512,-2.8705765)"&gt;
&lt;rect
style="fill:#de8787;stroke-width:0.265001"
id="rect7"
width="22.480658"
height="14.077005"
x="5.1060171"
y="8.7936964" /&gt;
&lt;ellipse
style="fill:#445500;stroke-width:0.31973"
id="path1"
cx="16.323689"
cy="22.238592"
rx="11.298441"
ry="6.1636291" /&gt;
&lt;ellipse
style="fill:#668000;stroke-width:0.31973"
id="path1-4-5"
cx="16.294699"
cy="15.792293"
rx="11.298441"
ry="6.1636291" /&gt;
&lt;ellipse
style="fill:#aad400;stroke-width:0.31973"
id="path1-4"
cx="16.301134"
cy="9.0342054"
rx="11.298441"
ry="6.1636291" /&gt;
&lt;path
style="fill:#677821;stroke-width:0.264583"
d="M 5.0705587,22.799786 4.9641832,8.6164038 Z"
id="path3" /&gt;
&lt;path
style="fill:#677821;stroke-width:0.264583"
d="M 3.1581432,22.958923 3.0578513,18.646382"
id="path4" /&gt;
&lt;path
style="fill:#677821;stroke-width:0.264583"
d="M 4.9383199,8.6924347 5.0636846,22.883704"
id="path5" /&gt;
&lt;/g&gt;
&lt;/svg&gt;
</light_svg>
</icon>
<icon guid="e43aced9-83c9-4467-b579-91c30cee4e95" modified="True">
<svg_name>4ac7ba83-2b4f-4948-9ebb-c0423cb2baa1.svg</svg_name>
<light_svg>&lt;svg version="1.1" width="48" height="48" viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg"&gt;&lt;!--Rhino generated SVG--&gt;&lt;polyline stroke-width="2" stroke="#00A2E8" stroke-opacity="1" fill="none" stroke-linecap="butt" points="5.5,3 6.5,3"/&gt;
Expand Down Expand Up @@ -424,21 +486,30 @@
</icon>
</icons>
<macros>
<macro guid="bfac1506-2819-4cd8-87d1-5524068b3945" modified="True" bitmap_guid="310cad8e-9716-4cbd-abe0-51e3abe38200">
<button_text>function2</button_text>
<tooltip>blabla</tooltip>
<script>!_-RunPythonScript "src/function_2.py"</script>
<macro guid="80421b7e-2cdf-4b51-aee1-c68c81f4c43c" modified="True" bitmap_guid="53b742dd-0cbc-471f-9f0f-d2e0b965e02e">
<text>
<locale_1033>reset_database</locale_1033>
</text>
<script>!_-RunPythonScript "src/reset_database.py"</script>
</macro>
<macro guid="de61ca19-e804-4e61-8e94-3e505e8b3aff" modified="True" bitmap_guid="7170b8f2-7acb-4045-898f-02fb1c4365d6">
<button_text>Finds trunks basrd on cylinder model</button_text>
<tooltip>none</tooltip>
<script>!_-RunPythonScript "src/function_1.py"</script>
<text>
<locale_1033>test</locale_1033>
</text>
<script>!_-RunPythonScript "src/function_2.py"</script>
</macro>
<macro guid="56c650a8-7ad6-4ddd-8b3c-a1749276257f" modified="True" bitmap_guid="e43aced9-83c9-4467-b579-91c30cee4e95">
<button_text>test_3</button_text>
<menu_text>test_3</menu_text>
<help_text>test_3</help_text>
<tooltip>test_3</tooltip>
<script>!_-RunPythonScript "src/function_3.py"</script>
</macro>
<macro guid="bfac1506-2819-4cd8-87d1-5524068b3945" modified="True" bitmap_guid="310cad8e-9716-4cbd-abe0-51e3abe38200">
<text>
<locale_1033>test_3</locale_1033>
<locale_1033>test_2</locale_1033>
</text>
<script>!_-RunPythonScript "src/function_3.py"</script>
<script>!_-RunPythonScript "src/function_2.py"</script>
</macro>
</macros>
</RhinoUI>
Expand Down
16 changes: 8 additions & 8 deletions INSTALL.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
To use this tool (we avoid the term plugin, as it isn't a proper plugin), you need to follow those two steps. This solution is not very elegant but is adapted to the time available for this project 🏃‍♀️‍➡️.
To use this tool (we avoid the term plugin, as it isn't a proper plugin), you need to follow those two steps. This solution is not very elegant but is adapted to the time available for this project 🏃‍♀️‍➡️.

# 2-step install:
1) Add the src folder with the codes to the "scripts" folder of Rhino. (At every new release, the old files must be deleted). Please note that the Library (MacOS) and AppData (Windows) folders are "hidden folders". On MacOS press command+shift+. to reveal the hidden folders. On Windows 10 or 11, [see this link](https://support.microsoft.com/en-us/windows/view-hidden-files-and-folders-in-windows-97fbc472-c603-9d90-91d0-1166d1d9f4b5#WindowsVersion=Windows_11)
1) Add the src folder with the codes to the "scripts" folder of Rhino. (At every new release, the old files must be deleted). Please note that the Library (MacOS) and AppData (Windows) folders are "hidden folders". On MacOS press command+shift+. to reveal the hidden folders. On Windows 10 or 11, [see this link](https://support.microsoft.com/en-us/windows/view-hidden-files-and-folders-in-windows-97fbc472-c603-9d90-91d0-1166d1d9f4b5#WindowsVersion=Windows_11)

Note that the "script" folder in the "8.0" folder might be missing, in which case you have to create it, respecting the exact spelling.

Expand All @@ -18,7 +18,7 @@ Windows path:
C:\Users\<your_username>\AppData\Roaming\McNeel\Rhinoceros\8.0\scripts
```

For each `function_<>.py`, change the `admin` by your user name. This step is particularly not elegant, but until pip packages via Rhino are not resolved, this is the way to go if you want to avoid creating a fully fledged plugin.
For each `function_<>.py`, change the `admin` by your user name. This step is particularly not elegant, but until pip packages via Rhino are not resolved, this is the way to go if you want to avoid creating a fully fledged plugin.

2) Drag-and-drop the .rhc container file ( [Download link](https://github.com/ibois-epfl/Carnutes/raw/main/Carnutes.rhc) ). This file contains the metadata that creates the "Carnutes" toolbar tab with all the buttons calling the different scripts.

Expand All @@ -27,7 +27,7 @@ This solution is inelegant but corresponds to the developement time allocated to
# Dependencies
There is no need to install dependencies as they are all installed automatically using the `# r: <package>`

The dependencies are nevertheless listed here:
The dependencies are nevertheless listed here:

- [numpy (1.26.4)](https://numpy.org/) for basic mathematics. Note that [numpy 2.0.0 is not compatible with open3d 0.18.0](https://github.com/isl-org/Open3D/issues/6840)
- [i-graph (0.11.6)](https://igraph.org/) for connectivity of elements
Expand All @@ -43,22 +43,22 @@ conda env create -f environment.yml
conda activate Carnutes
```

Navigate to the src directory:
Navigate to the src directory:

```bash
cd src
```

And run the python script with:
And run the python script with:

MacOS:

```bash
/Users/<your_username>/anaconda3/envs/database_creation/bin/python database_creator.py
```

Windows:
Windows:

```bash
C:\Users\<your_username>\anaconda3\envs\database_creation\python.exe .\database_creator.py
```
```
Loading
Loading