Genesis
Genesis copied to clipboard
[Bug]: ZeroDivisionError when starting genesis with vulkan backend
Bug Description
Trying the Genesis' hello world on an Intel Core Ultra (ARC graphics):
- works fine on the CPU (
backend=gs.cpu) - immediately crashes with the GPU backend (
backend=gs.gpu) with aZeroDivisionError
Steps to Reproduce
run the official 'hello world' snippet:
> cat hello_world.py
import genesis as gs
gs.init(backend=gs.gpu)
scene = gs.Scene(show_viewer=True)
plane = scene.add_entity(gs.morphs.Plane())
franka = scene.add_entity(
gs.morphs.MJCF(file='xml/franka_emika_panda/panda.xml'),
)
scene.build()
for i in range(1000):
scene.step()
> uv run ./hello_world.py
Expected Behavior
The hello world scene works on the GPU (Vulkan) in the same way as on the CPU.
Screenshots/Videos
No response
Relevant log output
This is the exact ouput log:
[Genesis] [22:05:43] [INFO] ╭─────────────────────────────────────────────────────────────────────────────────────╮
[Genesis] [22:05:43] [INFO] │┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉ Genesis ┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉│
[Genesis] [22:05:43] [INFO] ╰─────────────────────────────────────────────────────────────────────────────────────╯
[Genesis] [22:05:44] [INFO] Running on [Intel(R) Arc(TM) Graphics] with backend gs.vulkan. Device memory: 13.41 GB.
[Genesis] [22:05:44] [INFO] 🚀 Genesis initialized. 🔖 version: 0.3.7, 🎨 theme: dark, 🌱 seed: None, 🐛 debug: False, 📏 precision: 32, 🏎️ performance: False, 💬 verbose: INFO
[Genesis] [22:05:49] [INFO] Scene <1e4332b> created.
[Genesis] [22:05:49] [INFO] Adding <gs.RigidEntity>. idx: 0, uid: <0c68b0b>, morph: <gs.morphs.Plane>, material: <gs.materials.Rigid>.
[Genesis] [22:05:49] [INFO] Adding <gs.RigidEntity>. idx: 1, uid: <5f3c511>, morph: <gs.morphs.MJCF(file='/home/skadge/applis/.venv/lib/python3.13/site-packages/genesis/assets/xml/franka_emika_panda/panda.xml')>, material: <gs.materials.Rigid>.
[Genesis] [22:05:50] [WARNING] (MJCF) Approximating tendon by joint actuator for `finger_joint1`
[Genesis] [22:05:50] [WARNING] (MJCF) Actuator control gain and bias parameters cannot be reduced to a unique PD control position gain. Using max between gain and bias for joint `finger_joint1`.
[Genesis] [22:05:50] [WARNING] (MJCF) Approximating tendon by joint actuator for `finger_joint2`
[Genesis] [22:05:50] [WARNING] (MJCF) Actuator control gain and bias parameters cannot be reduced to a unique PD control position gain. Using max between gain and bias for joint `finger_joint2`.
[Genesis] [22:05:50] [INFO] Applying offset to base link's pose with user provided value in morph.
[Genesis] [22:05:50] [INFO] Building scene <1e4332b>...
[Genesis] [22:05:51] [WARNING] Reference robot position exceeds joint limits.
[Genesis] [22:05:51] [WARNING] Constraint solver time constant should be greater than 2*substep_dt. timeconst is changed from `0.005` to `0.02`). Decrease simulation timestep or increase timeconst to avoid altering the original value.
Traceback (most recent call last):
File "/home/skadge/applis/genesis/test1.py", line 11, in <module>
scene.build()
~~~~~~~~~~~^^
File "/home/skadge/applis/.venv/lib/python3.13/site-packages/genesis/utils/misc.py", line 140, in wrapper
return method(self, *args, **kwargs)
File "/home/skadge/applis/.venv/lib/python3.13/site-packages/genesis/engine/scene.py", line 806, in build
self._sim.build()
~~~~~~~~~~~~~~~^^
File "/home/skadge/applis/.venv/lib/python3.13/site-packages/genesis/engine/simulator.py", line 208, in build
solver.build()
~~~~~~~~~~~~^^
File "/home/skadge/applis/.venv/lib/python3.13/site-packages/genesis/engine/solvers/rigid/rigid_solver_decomp.py", line 289, in build
self._init_collider()
~~~~~~~~~~~~~~~~~~~^^
File "/home/skadge/applis/.venv/lib/python3.13/site-packages/genesis/engine/solvers/rigid/rigid_solver_decomp.py", line 763, in _init_collider
self.collider = Collider(self)
~~~~~~~~^^^^^^
File "/home/skadge/applis/.venv/lib/python3.13/site-packages/genesis/engine/solvers/rigid/collider_decomp.py", line 66, in __init__
self._support_field = SupportField(rigid_solver)
~~~~~~~~~~~~^^^^^^^^^^^^^^
File "/home/skadge/applis/.venv/lib/python3.13/site-packages/genesis/engine/solvers/rigid/support_field_decomp.py", line 21, in __init__
self._compute_support()
~~~~~~~~~~~~~~~~~~~~~^^
File "/home/skadge/applis/.venv/lib/python3.13/site-packages/genesis/engine/solvers/rigid/support_field_decomp.py", line 54, in _compute_support
window_size = int(5e8 // this_pos.shape[0])
~~~~^^~~~~~~~~~~~~~~~~~~
ZeroDivisionError: float floor division by zero
[Genesis] [22:05:52] [ERROR] ZeroDivisionError: float floor division by zero
[Genesis] [22:05:52] [INFO] 💤 Exiting Genesis and caching compiled kernels...
Environment
- OS: Ubuntu 25.10
- GPU/CPU:Intel(R) Core(TM) Ultra 9 185H, Arc(TM) Graphics
- GPU-driver version:
+ intel-cmplr-lib-rt==2025.2.1
+ intel-cmplr-lib-ur==2025.2.1
+ intel-cmplr-lic-rt==2025.2.1
+ intel-opencl-rt==2025.2.1
+ intel-openmp==2025.2.1
+ intel-pti==0.13.1
+ intel-sycl-rt==2025.2.1
+ mkl==2025.2.0
+ oneccl==2021.16.1
+ oneccl-devel==2021.16.1
+ onemkl-sycl-blas==2025.2.0
+ onemkl-sycl-dft==2025.2.0
+ onemkl-sycl-lapack==2025.2.0
+ onemkl-sycl-rng==2025.2.0
+ onemkl-sycl-sparse==2025.2.0
- torch:
torch==2.9.1+xpu
torchaudio==2.9.1+xpu
torchvision==0.24.1+xpu
- CUDA / CUDA-toolkit version: N/A
Release version or Commit ID
0.3.7
Additional Context
No response
yeah, I'm afraid our Vulkan backend is somewhat broken at the moment...