Live data from Hacker News

Genesis – a generative physics engine for general-purpose robotics

genesis-world.readthedocs.io

31–40 of 54 posts

Re: Genesis – a generative physics engine for general-purpose robotics

#31

100% python and fast? Either it isn't 100% python, or it isn't fast.

Depends where your boundary for "100% Anything" is I suppose. It seems to use GPU accelerated kernels written in Python via the Taichi library for most of the physics calculations. At some point, sure, the OS+GPU driver+GPU firmware you need to run the GPU accelerated kernel are not written in Python (and if you run it on CPU instead it will be slow, but more because you're using the CPU than you're not using C or something). There is a bit of numpy too, which eventually boils down to some non-Python stuff (as any Python code eventually will). I'm not sure that's a useful distinction or that the choice of language in defining the kernels makes a meaningful difference on the overall performance in this case.

Re: Genesis – a generative physics engine for general-purpose robotics

#32
post #22

I suspect that the actual generation and simulation/rendering takes several minutes for each step.

The simulation/rendering is actually pretty fast since it's all done by heavily optimized gpu-based physics and graphics engines. The "generative" part is that they have some LLM stuff that's finetuned for generating configurations/parameters for the physics engine conditioned on some text. Ie, the physics and graphics are classical clockworky simulations, with a generative frontend to make it easier (but less precise) to get a world up and running. The open source release currently provides the clockworky simulator stuff, with the generative frontend to be released some time in the future.

Re: Genesis – a generative physics engine for general-purpose robotics

#33

The GitHub claims: > Genesis delivers an unprecedented simulation speed -- over 43 million FPS when simulating a Franka robotic arm with a single RTX 4090 (430,000 times faster than real-time). That math works out to… 23.26 nanoseconds per frame. Uhh… no they don’t simulate a robot arm in 23 nanoseconds? That’s literally twice as fast as a single cache miss? They may have an interesting platform. I’m not sure. But so…

The fine text at the bottom of speed comparison video on the project homepage says "With `hibernation = True`". Based on a search through the code, the hibernation setting appears to skip simulating components which reach steady state.

Re: Genesis – a generative physics engine for general-purpose robotics

#34
post #10

In the sizzle reel, the early waterdrop demos are beautiful but seem staged, the later robotics demos look more plausible and very impressive. But referring to all these "4D dynamical worlds" sounds overhyped / scammy - everyone else calls 3D space simulated through time a 3D world. > Genesis's physics engine is developed in pure Python, while being 10-80x faster than existing GPU-accelerated stacks like Isaac Gym an…

> "4D dynamical worlds" Its a feature of that field of science. I'm currently working in a lab that is doing bunch of things that in papers are described $adjective-AI. In practice its just a slightly hyped, but vaguely agreed upon by consensus in weird science paper english term, or set of terms. (in the same way that guassian splats and totally just point clouds with efficient alpha blending[only slightly more comp…

They could be implying a little bit of computer graphics in the mix. Rotation, shear, and transformation matrices have a dimension of 4.

Re: Genesis – a generative physics engine for general-purpose robotics

#35

The GitHub claims: > Genesis delivers an unprecedented simulation speed -- over 43 million FPS when simulating a Franka robotic arm with a single RTX 4090 (430,000 times faster than real-time). That math works out to… 23.26 nanoseconds per frame. Uhh… no they don’t simulate a robot arm in 23 nanoseconds? That’s literally twice as fast as a single cache miss? They may have an interesting platform. I’m not sure. But so…

It's possible they're executing many simulations in parallel, and counting that. 16k robot arms executing at 3k FPS each is much more reasonable on a 4090. If you're effectively fuzzing for edge cases, this would have value.

The reason why they are using the FPS (frames-per-second) term in a different way, is that this robotics simulator is primarily going to be used for reinforcement learning, where you run thousands of agents in parallel. In that context, the total "batched" throughput of how many frames you can generate per second is crucial for training your policy network quickly - than the actual latency between frames (which is more important for real-time tasks like gaming)

Re: Genesis – a generative physics engine for general-purpose robotics

#36
post #7

What method is Genesis using for JIT compilation? What subset of Python syntax / operations will be supported? The automatic differentiation seems to be intended for compatibility with Pytorch. Will Genesis be able to interface with JAX as well? The project looks interesting, but the website is somewhat light on details. In any case, all the best to the developers! It's great to hear about various efforts in the spac…

I believe they use Taichi.

Re: Genesis – a generative physics engine for general-purpose robotics

#37
post #15

I saw this on twitter and actually came on HN to see if there was a thread with more details. The demo on twitter was frankly unbelievable. Show me a water droplet falling...okay...now add a live force diagram that is perfectly rendered by just asking for it? What? Doesn't seem possible/real. And yet it seems reputable, the docs/tech look legit, they just "aren't released the generative part yet". What is going on he…

The values on the forces diagram can't be real

Re: Genesis – a generative physics engine for general-purpose robotics

#38

100% python and fast? Either it isn't 100% python, or it isn't fast.

Depends where your boundary for "100% Anything" is I suppose. It seems to use GPU accelerated kernels written in Python via the Taichi library for most of the physics calculations. At some point, sure, the OS+GPU driver+GPU firmware you need to run the GPU accelerated kernel are not written in Python (and if you run it on CPU instead it will be slow, but more because you're using the CPU than you're not using C or so…

The doc emphasizes "100% Python" and that backend is natively in Python. I'm reading this as "you don't need anything else than Python interpreter." Given a large number of packages aren't in Python under the hood, that's a big, unnecessary hyperbole. It's Ok to acknowledge that there's a heavily reliance on non-python code, e.g. Taichi or Numpy.

I also think that the distinction isn't particularly useful. Just pedantic claims will get pedantic feedback.

Re: Genesis – a generative physics engine for general-purpose robotics

#39
post #8

Maybe I missed it, but are there any performance numbers? It being 100% implemented in Python makes me very suspicious that this won’t scale to any kind of large robot.

It’s implemented in Python, but it is using existing Python libraries which themselves are implemented in C, etc.

Notably it uses both Taichi and Numba, which compile code expressed in (distinct restricted subsets of) Python (much broader in Numba’s case) to native CPU/GPU code including parallelization.

Re: Genesis – a generative physics engine for general-purpose robotics

#40

100% python and fast? Either it isn't 100% python, or it isn't fast.

The Genesis code itself is 100% python. The underlying Python libraries it uses are not (just as, or that matter, the Python standard library isn’t, but this is, in particular, using Numba – which compiles fairly normal Python to CPU and optionally GPU-native code – and Taichi, which compiles very specially-crafted Python to kernels for GPU.)
Post reply on HN