The Genesis project is an advanced physics platform designed for robotics and embodied AI applications, offering a universal physics engine, robotics simulation, and generative data capabilities. It is developed by a community-driven open-source initiative under the Apache License 2.0. The project is in an active state of development with significant community engagement, as evidenced by its high GitHub star count and recent activity.
trimesh
and pymeshlab
.YilingQiao:
Ziyan Xiong (ziyanx02):
Ikko Eltociear Ashimine (eltociear):
time_elapser.py
.CharlesCNorton:
Zhenjia Xu (zhenjia-xu):
from_torch
method.Zhaojing Yang (yang-zj1026):
Johnson, Tsun Hsuan, Wang (zswang666):
Yin Jie (sjtuyinjie):
Rob Royce (RobRoyce):
Sang Min Kim (sangminkim-99):
Zhou Xian (zhouxian):
Pingchuan Ma (PingchuanMa):
Abhay Deshpande (abhaybd):
from_torch
method.trimesh
and pymeshlab
(#26, #52) could deter new users or contributors.Timespan | Opened | Closed | Comments | Labeled | Milestones |
---|---|---|---|---|---|
7 Days | 124 | 18 | 326 | 124 | 1 |
14 Days | 124 | 18 | 326 | 124 | 1 |
30 Days | 124 | 18 | 326 | 124 | 1 |
All Time | 127 | 22 | - | - | - |
Like all software activity quantification, these numbers are imperfect but sometimes useful. Comments, Labels, and Milestones refer to those issues opened in the timespan in question.
Developer | Avatar | Branches | PRs | Commits | Files | Changes |
---|---|---|---|---|---|---|
Zhou Xian | 1 | 0/0/0 | 4 | 302 | 3553499 | |
Pingchuan Ma | 1 | 1/1/0 | 1 | 9 | 727 | |
YilingQiao | 1 | 2/2/0 | 7 | 19 | 259 | |
Ziyan Xiong | 1 | 3/1/1 | 2 | 3 | 168 | |
Sang Min Kim | 1 | 1/1/0 | 1 | 1 | 6 | |
Zhaojing Yang | 1 | 1/1/0 | 1 | 1 | 5 | |
Genesis-Embodied-AI | 1 | 0/0/0 | 2 | 1 | 5 | |
Rob Royce | 1 | 1/1/0 | 1 | 1 | 4 | |
Zhenjia Xu | 1 | 1/1/0 | 1 | 1 | 3 | |
Abhay Deshpande | 1 | 1/1/0 | 1 | 1 | 2 | |
Ikko Eltociear Ashimine | 1 | 1/1/0 | 1 | 1 | 2 | |
Yin Jie | 1 | 1/1/0 | 1 | 1 | 2 | |
CharlesCNorton | 1 | 1/1/0 | 1 | 1 | 2 | |
Dominik Weckmüller (do-me) | 0 | 1/0/0 | 0 | 0 | 0 | |
00make (00make) | 0 | 1/0/0 | 0 | 0 | 0 | |
Dear.Va (DearVa) | 0 | 1/0/0 | 0 | 0 | 0 | |
Arda Buckun (ardabck) | 0 | 1/0/0 | 0 | 0 | 0 | |
Marco Boneberger (marcbone) | 0 | 1/0/0 | 0 | 0 | 0 | |
Johnson, Tsun Hsuan, Wang | 0 | 0/0/0 | 0 | 0 | 0 | |
Isaac (IsaacGemal) | 0 | 1/0/1 | 0 | 0 | 0 | |
YamakenElf (KafuuChikai) | 0 | 1/0/0 | 0 | 0 | 0 | |
Neko Asakura (NekoAsakura) | 0 | 1/0/0 | 0 | 0 | 0 |
PRs: created by that dev and opened/merged/closed-unmerged during the period
Risk | Level (1-5) | Rationale |
---|---|---|
Delivery | 4 | The project faces significant delivery risks due to a growing backlog of issues, with 124 issues opened and only 18 closed in the past 30 days. This indicates potential bottlenecks in issue resolution and resource allocation. The lack of milestones set during this period further suggests a lack of clear short-term goals, affecting team focus and project delivery. Additionally, unresolved issues such as cross-platform compatibility challenges (#165, #90) and installation difficulties (#26, #52) could impact delivery timelines if not addressed promptly. |
Velocity | 3 | The project's velocity is at risk due to uneven distribution of workload among developers and potential bottlenecks in code review processes. Zhou Xian's massive commit affecting 302 files poses risks to code quality and maintainability, potentially slowing down progress. The limited number of pull requests merged or closed also indicates potential delays in development workflows. However, active development efforts and recent optimizations suggest some positive momentum. |
Dependency | 4 | The project faces dependency risks due to its reliance on multiple physics solvers and platforms, which could pose challenges in maintaining compatibility and stability. Specific issues such as conflicts between Taichi and PyGEL3D on macOS (#165) highlight these risks. Additionally, installation difficulties related to dependencies like trimesh and pymeshlab (#26, #52) suggest potential hurdles in dependency management that could hinder new user onboarding. |
Team | 3 | The team faces risks related to uneven workload distribution, with some developers handling significantly larger tasks than others. This could lead to burnout or affect team dynamics. However, the emphasis on user-friendliness and community contributions suggests a proactive approach to team dynamics, encouraging collaboration and feedback. The presence of several developers with minimal or no commits indicates either a lack of engagement or roles focused on non-coding tasks. |
Code Quality | 3 | Code quality is at risk due to the high volume of changes introduced by individual contributors like Zhou Xian, which could introduce bugs or technical debt if not carefully managed. The introduction of a pre-commit hook for code formatting with Black is a positive step towards maintaining consistent code quality. However, the disparity in commit volumes among developers highlights potential risks in maintaining code quality across the project. |
Technical Debt | 4 | Technical debt is accumulating due to unresolved issues and large-scale changes that pose risks to code quality and maintainability. The high volume of open issues (105) indicates a significant backlog that could exacerbate technical debt if not addressed promptly. Additionally, the lack of comprehensive documentation for new features (#135) could hinder future development efforts. |
Test Coverage | 4 | Test coverage is insufficient to catch bugs and regressions, as indicated by recurring issues across different environments (#151, #143). The addition of CI/CD configurations suggests an effort to improve test coverage, but their effectiveness depends on thorough integration into the development workflow. The presence of unresolved technical challenges in some pull requests (#83) further highlights gaps in test coverage. |
Error Handling | 3 | Error handling is at risk due to unresolved cross-platform compatibility issues and the absence of error handling mechanisms in critical scripts (e.g., 'go2_backflip.py'). These gaps could lead to significant delays if errors are not caught and reported effectively. However, recent fixes for specific bugs (#162) indicate some progress in addressing error handling challenges. |
Recent GitHub issue activity for the Genesis project has been notably high, with a significant influx of issues created in the last few days. The issues cover a wide range of topics, including installation problems, compatibility issues across different platforms, feature requests, and bug reports. This level of activity indicates a high level of engagement from the community, reflecting both interest in the project and challenges users face.
Several issues stand out due to their complexity or frequency. Notably, there are multiple reports of errors related to OpenGL and GLFW conflicts, particularly on macOS with Apple Silicon (#165, #90). These issues suggest a recurring problem with graphics compatibility on this platform. Additionally, there are several instances of users encountering AttributeError: function 'glGetUniformLocation' not found
(#143, #99), indicating a potential gap in the library's support for certain OpenGL functions on Windows systems.
Another common theme is installation difficulties, especially related to dependencies like trimesh
and pymeshlab
, which are causing problems across different operating systems (#26, #52). Users have also reported issues with running examples on headless systems or within Docker containers, highlighting the need for better support or documentation for these environments (#33, #119).
The presence of multiple feature requests and questions about future capabilities (e.g., support for molecular dynamics or ROS integration) indicates a strong interest in expanding Genesis's functionality. However, some users have expressed confusion over missing features that were advertised but not yet available, such as the generative data engine (#30).
#166: Feature request: please add an example working in Google Colab
#165: OpenGL/GLFW Conflict Between Taichi and PyGEL3D on macOS (Apple Silicon)
#164: Issues Importing Custom Robot Model from SolidWorks into Genesis
#161: Cloth simulation
#159: Trimesh Error Report
#145: [Bug] run hello_genesis.py meet visualizer crash
#121: This project cannot run Fluid Simulations on mac, heres why, fix perhaps? :
#119: display not detected in docker container
#113: AttributeError: module 'genesis' has no attribute 'init'
#107: Request to add official implementation of domain randomization for RL
LRP_PATH
to specify the correct path.--cpu
argument was not properly setting the simulator to use the CPU.cloth_on_rigid.py
to respect the --cpu
argument.torch
import and suggests keeping the viewer open by default.ti.static
.Closed Without Merge (#126):
Cross-platform Challenges (#83):
Critical Bug Fixes (#92):
The Genesis project is actively evolving with numerous contributions addressing both functional enhancements and critical bug fixes. Notably, PRs like #163 and #92 address significant usability issues, while others like #135 introduce valuable new features. The community's engagement through these contributions is vital for the project's continued success.
examples/locomotion/go2_backflip.py
Go2Env
class, initializes configurations for the environment, observations, rewards, and commands, and runs a simulation loop using a pre-trained policy.BackflipEnv
class extends Go2Env
and overrides methods to customize behavior.main()
function when loading the policy.genesis/logging/time_elapser.py
TimeElapser
, which is designed to log elapsed time in a separate thread.with
statement), which is a clean approach for resource management.__enter__
and __exit__
methods that do nothing; these should be removed or implemented correctly.genesis/grad/creation_ops.py
exec
) is clever but can be risky and hard to debug. Consider using decorators or metaprogramming techniques instead._is_float
and _is_int
helper functions improve readability by encapsulating type checks.examples/smoke.py
genesis/engine/entities/sf_entity.py
ParticleEntity
).process_input
, _add_to_solver_
, sample
) indicating incomplete implementation or future work needed..pre-commit-config.yaml
.gitmodules
.github/workflows/Dockerfile
.github/workflows/ci.yml
Overall, the files demonstrate good coding practices with room for minor improvements in documentation, error handling, and security considerations.
YilingQiao:
Ziyan Xiong (ziyanx02):
Ikko Eltociear Ashimine (eltociear):
time_elapser.py
for minor corrections.CharlesCNorton:
Zhenjia Xu (zhenjia-xu):
from_torch
method.Zhaojing Yang (yang-zj1026):
Johnson, Tsun Hsuan, Wang (zswang666):
Yin Jie (sjtuyinjie):
Rob Royce (RobRoyce):
Sang Min Kim (sangminkim-99):
Zhou Xian (zhouxian):
Pingchuan Ma (PingchuanMa):
Abhay Deshpande (abhaybd):
from_torch
method.Active Collaboration: There is significant collaboration among team members, particularly involving YilingQiao, Ziyan Xiong, and Zhenjia Xu. This indicates a strong team dynamic focused on improving both functionality and documentation.
Frequent Updates: The team is actively maintaining the project with frequent updates to both code and documentation. This includes bug fixes, feature enhancements, and formatting improvements.
Documentation Focus: Several commits are dedicated to updating and correcting documentation, suggesting an emphasis on clarity and user-friendliness.
CI/CD Enhancements: Recent activities include setting up pre-commit hooks and CI checks, reflecting a focus on maintaining code quality and consistency across the project.
Diverse Contributions: The contributions range from bug fixes to major feature additions, indicating a broad scope of ongoing development efforts within the team.