Comments (1)
Hi @bd-mdelasa,
First a meta-comment: this sort of detailed request from valued users is exactly what we need in order to correctly prioritize our roadmap.
Addressing your high-level question
Are there any efforts in the area of scaling MuJoCo to larger scenes?
The answer is a resounding "yes", as follows.
- At the compiler level, we are in late stages of designing a programmatic API to manipulate models. You can inspect the (unfinished, currently private) API here. The gist of the API is the introduction of a new high-level struct called
mjSpec
which is essentially a programmatic equivalent of an XML model description. Instead of the current workflowXML → mjModel
, the new workflow will look likeXML → mjSpec → (edit, add, remove elements) → mjModel
. So we still have all the benefits of model compilation, but we keep themjSpec
object as a live, editable thing that can always be recompiled. By not touching things that have not changed (incremental compilation), making a newmjModel
will be very fast, after the first compile. This should allow you to manually "freeze" subsets of dofs that are no longer relevant for the scene in progress. We are currently finalizing this API, which will of course also be accessible via the Python bindings. - At the engine level, the main items are:
- Fix some memory allocation issues with the Newton solver. This will both give us some speed-up from better cache friendliness but most importantly allow the Newton solver to handle tens of thousands of contacts/dofs.
- Enable contact islands for the Newton solver, which will allow multithreading within a single scene. After this is done contacts islands will likely be on by default.
- Once both 1 and 2 are finished, we will add dof freezing functionality at the island level. We are not yet sure if this will be enabled as a runtime option (without changing the
mjModel
) or at themjSpec
API level, effectively "recompile the model, removing all dofs of island X".
The workstream in item 1 is already actively being worked on. Item 2 was recently up-prioritized following your feature request. We expect 1 and 2 to be complete some time during Q3 24'.
Regarding your specific question regarding welding boxes, I'm a bit surprised that this is not working as expected. First of all by "welding" I hope you mean removing the DoFs, not adding a "weld" constraint, yes? Assuming the answer is "yes", please try replacing the enclosing bodies with frames. These are similar to bodies but cheaper. Basically all static (dofless) bodies should be frames, rather than bodies. If you have followup question regarding this specific workflow, please open a new issue, since I'd like to keep this issue, along with #7, to track the high-level large-scene feature set.
Cheers!
from mujoco.
Related Issues (20)
- Resource not found (ValueError), but only on consecutive runs. HOT 12
- Equation for the Scalar Length l_i in the Actuator Transmission for Hinge Joints HOT 2
- Estimate qvel from sequence of rotations HOT 5
- How to simulate glass window/door in mujoco? HOT 8
- Assistance Required with Renderer Updates for Multiple XML Models in Reinforcement Learning HOT 2
- Modelling Shallow Water Correctly
- GLFW crashes on aarch64 wayland HOT 3
- [Unity plugin] Add kv property for position actuators HOT 2
- MJX False Collision in 3.1.4 and 3.1.5 only (no collision in MuJoCo) HOT 4
- [<Actuator>] Custom Control Range Mapping for Actuators in MJCF XML HOT 2
- MuJoCo ROS Integration - segmentation faults in model instance (from version 3.1.1 -> ^3.1.2) HOT 1
- Camera Rendering Incomplete After Modifying znear and zfar
- D4RL mujoco datasets compatibility between versions HOT 1
- MuJoCo cup model penetrating floor/table HOT 3
- Issues with Point Cloud Visibility in Camera's Field of View Using MuJoCo
- Document MJX "broadphase" fields
- Simulating tension only cables with variable lengths
- Disabling contact rendering for Touch Sensor Grid plugin HOT 1
- Human musculoskeletal motion simulation using mujoco HOT 1
- Build from Source incl. Python Bindings HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mujoco.