You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .junie/guidelines.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,4 @@
1
-
# Semantic World Guidelines
1
+
# Semantic Digital Twin Guidelines
2
2
3
3
## Testing
4
4
- If you need to run tests, execute them with pytest
@@ -9,7 +9,7 @@
9
9
- Do not use abbreviations
10
10
- Create classes instead of using too many primitives
11
11
- Minimize duplication of code
12
-
- Use the semantic_world/doc/styleguide.md for naming transformation variables
12
+
- Use the semantic_digital_twin/doc/styleguide.md for naming transformation variables
13
13
- Do not wrap attribute access in try-except blocks
14
14
- Always access attributes via ".", never via getattr
15
15
- Use existing packages whenever possible
@@ -18,7 +18,7 @@
18
18
19
19
## Design Principles
20
20
- Always apply the SOLID principles of object-oriented programming
21
-
- If you have to create new view classes, stick to the design of existing views found in semantic_world.views.views
21
+
- If you have to create new semantic annotation classes, stick to the design of existing semantic annotations found in semantic_digital_twin.semantic_annotations.semantic_annotations
- :py:mod:`semantic_world.adapters`: Bridges between the World and external ecosystems and file formats. They import/export world data and keep it in sync with tools like ROS2, simulators, and mesh/robot formats.
33
+
- :py:mod:`semantic_digital_twin.adapters`: Bridges between the World and external ecosystems and file formats. They import/export world data and keep it in sync with tools like ROS2, simulators, and mesh/robot formats.
34
34
35
-
- :py:mod:`semantic_world.world`: The central scene-graph/kinematic container you interact with. It owns bodies, connections, and degrees of freedom; validates and updates the kinematic structure; provides forward/inverse kinematics, collision-related utilities, callbacks for state/model changes, and orchestration of higher-level semantics like views.
35
+
- :py:mod:`semantic_digital_twin.world`: The central scene-graph/kinematic container you interact with. It owns bodies, connections, and degrees of freedom; validates and updates the kinematic structure; provides forward/inverse kinematics, collision-related utilities, callbacks for state/model changes, and orchestration of higher-level semantics like semantic annotations.
36
36
37
-
- :py:mod:`semantic_world.orm`: The database layer. It maps world entities and relationships to SQL databases via SQLAlchemy (auto-generated with `ormatic`), enabling serialization, persistence, and retrieval of complete worlds. It defines the SQL types and a thin interface to store/load worlds reproducibly. If you are unhappy with the storage and retrieval of data from databases you most likely have to change something here
37
+
- :py:mod:`semantic_digital_twin.orm`: The database layer. It maps world entities and relationships to SQL databases via SQLAlchemy (auto-generated with `ormatic`), enabling serialization, persistence, and retrieval of complete worlds. It defines the SQL types and a thin interface to store/load worlds reproducibly. If you are unhappy with the storage and retrieval of data from databases you most likely have to change something here
38
38
39
-
- :py:mod:`semantic_world.spatial_types`: Numeric/symbolic geometric primitives and transformations used across the package (e.g., `TransformationMatrix`, points, vectors, expressions, derivatives). They support composing poses, doing kinematics, and differentiating expressions for solvers.
39
+
- :py:mod:`semantic_digital_twin.spatial_types`: Numeric/symbolic geometric primitives and transformations used across the package (e.g., `TransformationMatrix`, points, vectors, expressions, derivatives). They support composing poses, doing kinematics, and differentiating expressions for solvers.
40
40
41
-
- :py:mod:`semantic_world.views`: Semantic abstractions built on top of raw bodies and connections. A `View` represents a higher-level concept (e.g., a drawer composed of a handle and a prismatic container) and can be inferred by rules. Views provide task-relevant groupings and behaviors without changing the underlying kinematic graph.
42
-
43
-
- :py:mod:`semantic_world.world_description`: The domain model for kinematic structure and geometry: `Body`, `Region`, `Connection` (fixed, passive/active joints, 6-DoF), `DegreeOfFreedom`, geometry/mesh types, state and modification objects. These classes define the structure and editable state that the `World` manages and reasoners and adapters consume.
41
+
- :py:mod:`semantic_digital_twin.semantic_annotations`: Semantic abstractions built on top of raw bodies and connections. A `SemanticAnnotation` represents a higher-level concept (e.g., a drawer composed of a handle and a prismatic container) and can be inferred by rules. semantic annotations provide task-relevant groupings and behaviors without changing the underlying kinematic graph.
42
+
- :py:mod:`semantic_digital_twin.world_description`: The domain model for kinematic structure and geometry: `Body`, `Region`, `Connection` (fixed, passive/active joints, 6-DoF), `DegreeOfFreedom`, geometry/mesh types, state and modification objects. These classes define the structure and editable state that the `World` manages and reasoners and adapters consume.
44
43
45
44
Testing
46
45
-------
47
46
48
47
The tests are all contained in the test folder and further grouped by topics and written with `pytest <https://docs.pytest.org/en/7.1.x/index.html>`_.
49
-
The semantic world contains a module :py:mod:`semantic_world.testing` for useful fixtures that shorten your boilerplate code.
48
+
The semantic digital twin contains a module :py:mod:`semantic_digital_twin.testing` for useful fixtures that shorten your boilerplate code.
50
49
We aim for a test coverage > 95% and generally test everything we write.
51
50
Naturally, there are some exceptions, mainly including printing and visualization functionality.
52
51
@@ -55,7 +54,7 @@ You can execute them with
55
54
56
55
.. code-block:: bash
57
56
58
-
cd /path/to/semantic_world
57
+
cd /path/to/semantic_digital_twin
59
58
pytest test
60
59
61
60
Documentation
@@ -66,7 +65,7 @@ You can build it locally using
66
65
67
66
.. code-block:: bash
68
67
69
-
cd /path/to/semantic_world/doc
68
+
cd /path/to/semantic_digital_twin/doc
70
69
jb build .
71
70
72
71
@@ -85,7 +84,7 @@ You can test the entirety of notebooks using treon with
85
84
86
85
.. code-block:: bash
87
86
88
-
cd /path/to/semantic_world/scripts
87
+
cd /path/to/semantic_digital_twin/scripts
89
88
bash test_notebooks.sh
90
89
91
90
Contribution Guidelines
@@ -108,7 +107,7 @@ If you are a fellow pycharm enjoyer, there are a couple of hints I want to hand
108
107
109
108
Help, people are unhappy with my PR
110
109
-----------------------------------
111
-
We only accept clean code that does something useful and feels like it belongs inside the semantic world.
110
+
We only accept clean code that does something useful and feels like it belongs inside the semantic digital twin.
112
111
If the reviews address the quality/cleanness of your code, here are resources to improve your python object-oriented programming skills:
0 commit comments