forked from Genesis-Embodied-AI/Genesis
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
170 lines (163 loc) · 5.19 KB
/
pyproject.toml
File metadata and controls
170 lines (163 loc) · 5.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
[build-system]
requires = ["setuptools", "wheel", "cython>=3.0.0", "numpy>=1.26.4"]
build-backend = "setuptools.build_meta"
[project]
name = "genesis-world"
version = "0.3.3"
description = "A universal and generative physics engine"
readme = "README.md"
requires-python = ">=3.10,<3.14"
dependencies = [
"psutil",
"gstaichi==2.6.0",
"pydantic>=2.11.0",
"numpy>=1.26.4",
"trimesh",
"scipy>=1.14",
"libigl",
# Cross-platform library to get various kind of CPU information such as model name
"py-cpuinfo",
"mujoco>=3.2.5",
"moviepy>=2.0.0",
# Used by `pyrender` to manage onscreen graphical windows
# * 2.1.8 breaks headless windowing, which is used in unit tests of the interactive viewer.
"pyglet>=1.5,!=2.1.8",
# Used by `pyrender` to load fonts
"freetype-py",
# Used by `pyrender` to write low-level OpenGL rendering pipeline
"PyOpenGL>=3.1.4",
# Use by `pyrender` to compile low-level OpenGL rendering pipeline
"numba",
# Use by `Mesh.remesh`, which is involve in `PBDTetEntity.sample`
"pymeshlab",
# Optional `trimesh` dependency for loading `.dae` mesh files
"pycollada",
# Used for parsing `.glb` mesh files
"pygltflib==1.16.0",
# Used for parsing `.usd` mesh files
"usd-core",
# Use by `PBD3DEntity.sample` to tetrahedralize a mesh
"tetgen>=0.6.4",
# Used for some advanced mesh processing such as `skeletonization`
"PyGEL3D",
# Used here and there to load and export images
# * 11.0 dramatically improves performance when exporting images to PNG
"Pillow>11.0",
# Use to display camera images and export images
"opencv-python",
# Use by `RigidGeom.visualize_sdf` to render SDF as level 0 marching cubes
"scikit-image",
# Convex decomposition library
"coacd",
# Ray casting used in mesh to height field conversion
"rtree",
# Constraint Satisfaction Solver.
# Used to compute contype and conaffinity bitmasks from complete list of excluded collision pairs.
"z3-solver",
# Used for loading raytracing special texture images used by LuisaRender
"OpenEXR",
# Native batch renderer specifically designed for Genesis
"gs-madrona==0.0.5; platform_system=='Linux' and (platform_machine=='x86_64' or platform_machine=='AMD64')",
# Used for mesh simplification
"fast_simplification>=0.1.12",
# Surface reconstruction library for particle data from SPH simulations.
# 0.13.0.0 changes removes enable_multi_threading argument an enable it by default
# and AttributeError: 'builtins.MeshWithData' object has no attribute 'get_point_attribute'.
# Did you mean: 'add_point_attribute'?
"pysplashsurf<=0.12.0.2",
]
[project.optional-dependencies]
dev = [
"black",
"pytest",
"pytest-xdist",
"pytest-forked",
"pytest-random-order",
"pytest-print",
# - 16.0 is causing pytest-xdist to crash in case of failure or skipped tests
"pytest-rerunfailures<16.0",
"syrupy",
"huggingface_hub[hf_xet]",
"wandb",
"ipython",
# * Mujoco 3.3.6 made contact islands an opt-out option instead of opt-in,
# which requires setting the disableflags 'mjDSBL_ISLAND'.
"mujoco>=3.3.6,<3.4.0",
# Used internally by 'MPLPlotter'
# * 3.7.0: introduces Button blitting and 'outside' keyword legend location
"matplotlib>=3.7.0",
# Used internally by 'VideoFileWriter'
"av",
]
docs = [
# Note that currently sphinx 7 does not work, so we must use v6.2.1. Once fixed we can use a later version.
# See https://github.com/kivy/kivy/issues/8230 which tracks this issue.
"sphinx==6.2.1",
"sphinx-autobuild",
"pydata_sphinx_theme",
# For spelling
"sphinxcontrib.spelling",
# Type hints support
"sphinx-autodoc-typehints",
# Copy button for code snippets
"sphinx_copybutton",
# Markdown parser
"myst-parser",
"sphinx-subfigure",
"sphinxcontrib-video",
"sphinx-togglebutton",
"sphinx_design",
]
render = [
"pybind11[global]",
"open3d",
]
usd = [
# Used for parsing `.usd` mesh files
"usd-core",
]
[project.scripts]
gs = "genesis._main:main"
[tool.setuptools.packages.find]
where = ["."]
include = ["genesis", "genesis.*"]
[tool.setuptools.package-data]
genesis = [
"assets/*",
"ext/pyrender/fonts/*",
"ext/pyrender/shaders/*",
"ext/VolumeSampling",
]
[tool.black]
line-length = 120
force-exclude = '''
/(
genesis/ext
)/
'''
[tool.pytest.ini_options]
addopts = [
"--color=yes",
"--import-mode=importlib",
"--pdbcls=IPython.terminal.debugger:TerminalPdb",
# "--exitfirst",
"--numprocesses=auto",
"--dist=worksteal",
"--random-order-bucket=global",
"--random-order-seed=0",
# "--max-worker-restart=0",
"--durations=0",
"--durations-min=100.0",
"-m not (benchmarks or examples)",
]
filterwarnings = [
"ignore::_pytest.warning_types.PytestUnknownMarkWarning",
"ignore::DeprecationWarning",
]
markers = [
"examples: example scripts.",
"benchmarks: benchmarks for profiling and monitoring.",
"required: minimal test set that must pass systematically on any environment before merging.",
"field_only: tests that are not compatible with gstaichi ndarrays."
]
log_cli_level = "WARNING"