Giter Site home page Giter Site logo

mujoco-wasm's People

Contributors

stillonearth avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

zalo

mujoco-wasm's Issues

MuJoCo 3.0 - memory sparsification, contact islands and multi-threading, non-convex geometries, deformable bodies

Wondering if either yourself or @zalo have heard the MuJoCo 3.0 news? Pretty incredible new features (quoted from the release notes):

  • memory sparsification: MuJoCo already uses sparse algebra for large models, but several key matrices use dense memory allocation, while touching only non-zero entries. As a result, very large models simply do not fit in available memory. We have completed the memory-compression refactor for the Conjugate Gradient solver, which reduced the memory footprint of a scene with a humanoid and 100 free objects by a factor of 80, and are almost done sparsifying the remaining algorithms.
  • contact islands and multi-threading: MuJoCo 3 detects “contact islands”: sub-components of the scene which do not interact. For example in a scene with two robots, they are assigned to separate islands as long as the robots don’t touch each other. Islands can be solved-for independently, for example on separate threads. Using a new thread-pool API, designed to exploit such parallelization opportunities, a model with 22 humanoids runs 3x faster. Threading over contact islands is currently only implemented for the Conjugate Gradient solver, implementation for all other solvers is in progress. Other such intra-scene parallelization opportunities, for example collision detection, are also forthcoming.
  • non-convex geometries: MuJoCo 3 adds support for collision geometries defined via signed distance functions (SDFs), allowing users to create new primitives by specifying the distance from any given location to the closest point on a surface. These geometries are not constrained to be convex. We provide examples of what is possible including tori, gears, nuts and bolts. Additionally, users can import any mesh and generate a multiresolution voxelized SDF at model compilation time. In contrast to meshes, SDFs allow the number of contacts to be independent from the mesh resolution, making the cost of collision detection cheaper and more predictable. MuJoCo 3 SDFs can collide with all existing MuJoCo primitives and meshes.
  • deformable bodies: MuJoCo 3 introduces a new kind of deformable body called flex. These are collections of segments (1D), triangles (2D) and tetrahedra (3D), corresponding to rope, cloth and deformable volumetric shapes like biological tissue. Flex bodies are not defined in a hierarchical kinematic tree, and can therefore simulate closed loop structures of any topological genus like rubber bands and T-shirts. Deformation can be controlled either with equality constraints (for relatively stiff bodies) or with passive forces (for relatively soft bodies).

Would be awesome to play around with high-performance non-convex and deformable bodies in the browser 🤯

CC @lo-th

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.