Alessio Quaglino
35774706ee
Set parent frame of new frames after copying all frames.
...
PiperOrigin-RevId: 737620918
Change-Id: I8f49570cab39bd84b2da908d3683dddc3b29cb3c
2025-03-17 08:19:04 -07:00
Kyle Bayes
b10b0b7055
Cache all processed mesh data.
...
PiperOrigin-RevId: 737576455
Change-Id: I87628ce7842d0d7d0e7fe02eb9afb2ddefa68ff8
2025-03-17 05:20:41 -07:00
Kyle Bayes
1a67aaf1b7
Remove pointers from BVH for caching in mjCMesh.
...
PiperOrigin-RevId: 736849392
Change-Id: I684cca918c65718b29a1bcb41ecd6bad8d88f8f9
2025-03-14 07:01:18 -07:00
Alessio Quaglino
f25fc63f0f
Default flex internal contacts to "false".
...
This function is unusual in the context of soft body simulations and has been a common gotcha for users, see e.g. #2500 , #2079 , #1900 , and #1433 . It should be used only if element inversion cannot be prevented otherwise.
PiperOrigin-RevId: 736822983
Change-Id: I76b0965c91c94dd88123826d218d7544ec37a88c
2025-03-14 04:55:09 -07:00
Alessio Quaglino
8e300eb628
Update list ids immediately during body detach.
...
Fixes #2499 .
PiperOrigin-RevId: 736449320
Change-Id: Ieeae52bdbbbb896d886221ab088229c8287a32a3
2025-03-13 03:55:58 -07:00
Google DeepMind
5c3bab4d09
Change default metallic value to 0, as per the XMLreference doc.
...
See https://mujoco.readthedocs.io/en/stable/XMLreference.html#asset-material-metallic
PiperOrigin-RevId: 736190166
Change-Id: Ic841df9510aff5df8f5ea3394732ab65b550aa65
2025-03-12 10:54:29 -07:00
Alessio Quaglino
775c45c60e
Do not lookup compiler options by name when attaching.
...
Also, fix a pre-existing bug that caused incorrect compiler option propagation with nested attachments.
Fixes #2480 .
PiperOrigin-RevId: 736156202
Change-Id: Ib430493e8c60556c2312603198587b39de9b8a4a
2025-03-12 09:18:47 -07:00
Kyle Bayes
995bbf0f0f
Refactor and fold in code into Process in mjCMesh for caching.
...
PiperOrigin-RevId: 736052216
Change-Id: Ia0e055fd99ce429b9dee97f3f9effbf2fa1aa4f9
2025-03-12 02:12:53 -07:00
Alessio Quaglino
019e0a806c
Throw an error if a child attached by reference to a parent is compiled.
...
Fixes #2482 .
PiperOrigin-RevId: 735665098
Change-Id: Ia3436fdd2ff572f8f0c1ded434742a4a9186f2f7
2025-03-11 01:24:17 -07:00
Alessio Quaglino
14dc6fd33b
Do not use inertia during mesh compilation.
...
Fixes #2479 .
PiperOrigin-RevId: 735387473
Change-Id: Ib241f2a0efc100bbe2cec24e0399bfcc87268094
2025-03-10 08:35:33 -07:00
Alessio Quaglino
adc3cc06fa
Change private->public spec for error checking in mjCSkin recompilation.
...
Fixes #2485 .
PiperOrigin-RevId: 735323174
Change-Id: Ifcc2055f6a74afaa18ad5228633f36f760adcffd
2025-03-10 04:19:40 -07:00
Kyle Bayes
4d024f9421
Convert internal representation of vertices to double. Also replace remove duplicate vertices with fast hash implementation.
...
PiperOrigin-RevId: 734516595
Change-Id: Ic78556688d5f2b75d69cd286b8d060e2cdeb7c48
2025-03-07 05:17:49 -08:00
Yuval Tassa
109a223cf6
Narrow some includes in src/user/
...
PiperOrigin-RevId: 734389490
Change-Id: I2834aadbbb38b396536e467c0dfea11dcc21972f
2025-03-06 20:45:18 -08:00
Alessio Quaglino
e04e0e5c3d
Rename "facetexcoord" to "elemtexcoord" in mjsFlex element for consistency.
...
PiperOrigin-RevId: 734153759
Change-Id: Ic17d7c8a6e53fba04da511d405c815a723c5e55b
2025-03-06 08:28:36 -08:00
Alessio Quaglino
7651cb1b33
Copy texture coordinates from OBJ into flex. Fixes #2464 .
...
PiperOrigin-RevId: 732109960
Change-Id: I506b3540ab5d489ce8f10d0c473919611ccb654a
2025-02-28 06:04:19 -08:00
Alessio Quaglino
ed7adf3d17
Do not namespace the body that contains the frame during mjs_attachFrame.
...
PiperOrigin-RevId: 730912252
Change-Id: I026993af648766c09d569709d268430207d83169
2025-02-25 09:16:44 -08:00
Alessio Quaglino
ce82b63155
Add mjs_attachFrameToSite.
...
This is required in preparation of changing the spec.attach behavior in the Python bindings.
PiperOrigin-RevId: 730810198
Change-Id: I095808f0afe62b5bbd27201ed5c75804e0e9c4bf
2025-02-25 03:21:05 -08:00
Alessio Quaglino
14c8dc62f0
Add termination character to flattened plugin attributes if empty.
...
Fixes #2450 .
PiperOrigin-RevId: 730521722
Change-Id: Iec3fa377c65693d782eeb766a144a1c89096d1f3
2025-02-24 11:07:18 -08:00
Kyle Bayes
ae1c3b7ec0
Support multi-contact with meshes in nativeccd. Contacts are pruned to up to 4 per geom.
...
PiperOrigin-RevId: 730457036
Change-Id: Ib2368f3a7def4fdb94673620df3603e372c35745
2025-02-24 08:14:04 -08:00
Alessio Quaglino
b3aa5df68a
Improve composite docs and changelog.
...
PiperOrigin-RevId: 730394496
Change-Id: Ie993214deb82b526a96510e02f6ecff103c58607
2025-02-24 04:26:35 -08:00
Alessio Quaglino
c52d1b3941
Remove the particle composite (replaced by replicate).
...
PiperOrigin-RevId: 730089997
Change-Id: If8d18fb56ae01241e76f84dbf7951e034026d829
2025-02-23 03:14:11 -08:00
Alessio Quaglino
0fcd20f0da
Remove grid from composite types.
...
Replaced it with flexcomp in the models.
PiperOrigin-RevId: 730070619
Change-Id: Icbc69e4c6784c6252743f689a1eafb6482d0c393
2025-02-23 01:31:41 -08:00
Alessio Quaglino
6aabbc1892
Fixes an issue when self-attaching a model with pulley in tendons.
...
The decision to attach a tendon is taken by looking at whether any of the elements in its path exist when the namespace is added to them. This does not work when pulleys are present so we need to ignore them in the count of unreferenced element.
PiperOrigin-RevId: 729484365
Change-Id: I561a3a2eaa975a17421c8abe3ebfec8d4dd88951
2025-02-21 04:54:31 -08:00
Alessio Quaglino
6a86247810
Fix flex textures for 3D grids.
...
Fixes #2013 .
PiperOrigin-RevId: 728673726
Change-Id: Idb2b6bf9e5392576d0b09f3e71dbea6f4636ae81
2025-02-19 07:59:22 -08:00
Kyle Bayes
7f3bb062c3
Add fields in mjModel for supporting mesh multicontact in nativeccd.
...
PiperOrigin-RevId: 728659204
Change-Id: I7f8a11b082640284ea009d8693f228078680b953
2025-02-19 07:12:26 -08:00
Alessio Quaglino
7f11a0df12
Add check for height fields size during compilation.
...
Fixes #2427 .
PiperOrigin-RevId: 727805729
Change-Id: Idf3192e5fb238249faaeae6b4fb9de4c55755d96
2025-02-17 04:01:27 -08:00
Tom Power
78a4d2f389
Fix mass/inertia checking for moving bodies with nested children.
...
Previously, we only checked immediate children of moving bodies.
PiperOrigin-RevId: 726999705
Change-Id: I133a557daf86223b8751c6d46e25809781e168a1
2025-02-14 11:26:28 -08:00
Tom Power
89253d957d
Changes to inertia inference from meshes.
...
PiperOrigin-RevId: 726051033
Change-Id: I6edfc118280d103a2dd9d07f29f0094858769761
2025-02-12 07:43:13 -08:00
Alessio Quaglino
c1ecc50081
Store joint damping and stiffness in the private spec when springdamper is used in the public spec.
...
PiperOrigin-RevId: 724288204
Change-Id: I7341d5d804e1ea73ded48b8b447addd4e124ab97
2025-02-07 03:55:24 -08:00
Copybara-Service
cb1696eb34
Merge pull request #2390 from talregev:TalR/mesh
...
PiperOrigin-RevId: 723916727
Change-Id: I0abb0a12121c9eb291ccbc6afa0b4117bd389956
2025-02-06 06:46:40 -08:00
Alessio Quaglino
fe16c27555
Always compute the convex hull if the mesh inertia is set to convex.
...
PiperOrigin-RevId: 723477903
Change-Id: Ibc50d62741f47a5b96a648efd8fb244810664c17
2025-02-05 05:52:10 -08:00
Tom Power
3d9946cff3
Improve mesh processing readability
...
PiperOrigin-RevId: 721524528
Change-Id: I3af4e25815cbc7517b772826af7d929ea93f8164
2025-01-30 14:41:21 -08:00
Alessio Quaglino
7cdf180641
Introduce trilinear flex parametrization.
...
These flexes use only 24 DOFs (3 per vertex of the bounding box), while colliding with the full high resolution mesh.
On an 8x8x8 cube, the performance using DOFs at all vertices is
```
Simulation time : 18.74 s
Steps per second : 533
Realtime factor : 0.53 x
Time per step : 1874.4 µs
Contacts per step : 114.88
Constraints per step : 3322.51
Degrees of freedom : 1536
```
With the new implementation, it is the following:
```
Simulation time : 1.82 s
Steps per second : 5507
Realtime factor : 5.51 x
Time per step : 181.6 µs
Contacts per step : 38.84
Constraints per step : 155.36
Degrees of freedom : 24
```
PiperOrigin-RevId: 721008829
Change-Id: I833df027527db578d86667cc4b24295bcf6f7d22
2025-01-29 09:38:22 -08:00
Tal Regev
fd568d68d4
Generalize mesh object to be the type of tiny_obj_loader.
2025-01-28 11:33:29 +02:00
Alessio Quaglino
21d97902ee
Check keyframe size before appending it during attach.
...
Fixes #2365 .
PiperOrigin-RevId: 718455748
Change-Id: I20c56b7c6fbd868962d19682e72e6294edb6893e
2025-01-22 11:09:49 -08:00
Yuval Tassa
240a7afdee
Add sensors for potential and kinetic energy.
...
PiperOrigin-RevId: 716775375
Change-Id: Ic8ab7f1a51df970ab551dabe7c797cde13cd97fd
2025-01-17 13:10:12 -08:00
Yuval Tassa
893a993bf6
Fix typos.
...
PiperOrigin-RevId: 716211176
Change-Id: Ibadfe13db89ed9047832b977e918faa3c5c6d9f1
2025-01-16 06:28:54 -08:00
Alessio Quaglino
c2138c3fb0
Do not copy the spec during attach.
...
Use a reference count for managing the memory.
PiperOrigin-RevId: 716169486
Change-Id: Id270c4858c17b9250115e9544d5ea143584e2d5f
2025-01-16 03:53:17 -08:00
Alessio Quaglino
05d4c3d670
Add mjs_getParent to retrieve the parent body of an object.
...
PiperOrigin-RevId: 715794859
Change-Id: Ib9792787cdb966f579938dde3f94ebabca8ef1fc
2025-01-15 07:42:43 -08:00
Alessio Quaglino
f7d38dac62
Add recursive call to FindSpec for handling nested attachments.
...
PiperOrigin-RevId: 713629578
Change-Id: I23efa5a86bac187fc42eb955d29cc03cbacfd9e0
2025-01-09 04:56:12 -08:00
Alessio Quaglino
6654d63438
Add spec lookup in the attached spec array using the compiler option pointer.
...
This enables to find the spec associated with the compiler option stored in the objects, which do not necessarily belong to the model that owns them.
PiperOrigin-RevId: 713259419
Change-Id: I579c770147ff07ed2a5edd20e7a795ee7cc27147
2025-01-08 05:44:00 -08:00
Alessio Quaglino
f607d9554e
Check that there are no pending keyframes while writing a spec.
...
This can happen when a body is detached without compiling or recompiling.
Also added error catching when trying to delete a body instead of detaching it.
Fixes #2327
PiperOrigin-RevId: 712526730
Change-Id: I4b48df83120fca12d475c85b3a54893841449653
2025-01-06 07:50:30 -08:00
Yuval Tassa
7eb8231fda
Represent only the lower triangle in Newton solver's reduced dof-dof matrix.
...
PiperOrigin-RevId: 712488529
Change-Id: Iad91c72654376539791d7856765a0d0ac9088251
2025-01-06 04:58:55 -08:00
Alessio Quaglino
ee6f4837f3
Auto-generate 3D mesh from convex OBJ if dim=3 in flex.
...
This requires the user to explicitly specify an origin.
PiperOrigin-RevId: 712483526
Change-Id: Ie316a5eccb676bb918d4bb746795019145c10f5b
2025-01-06 04:35:59 -08:00
Alessio Quaglino
65048d6b8f
Do not use fast lookup for frames.
...
Fast lookup is not possible since mjOBJ_FRAME > mjNOBJECT, which is the size of the objects maps used for the search.
Fixes #2328 .
PiperOrigin-RevId: 712479460
Change-Id: I7bcfa75ff8a1e288183d60ed4a44cab5bc6f4173
2025-01-06 04:17:41 -08:00
Alessio Quaglino
f882f4b065
Remove requirement to specify a name prefix or suffix during attach.
...
PiperOrigin-RevId: 703049862
Change-Id: I5fd6da0581331b1b716110292a8160ae16934157
2024-12-05 03:19:57 -08:00
Alessio Quaglino
10239a673b
Change from parent ID to parent pointer in mjCBody.
...
This is required to have parent body info during attach and during body to frame tranformation for uncompiled models.
PiperOrigin-RevId: 703038426
Change-Id: Ib482059ba419a020860c649d6ea1b1088045f2e1
2024-12-05 02:32:56 -08:00
Alessio Quaglino
977fb913cf
Remove hanging vertex from flexcomp circle type.
...
PiperOrigin-RevId: 702777882
Change-Id: I3ce09c0ed81a9b153c606debc8c22fbb47c93e8b
2024-12-04 10:37:42 -08:00
Alessio Quaglino
afc86ac1b3
Associate children of deleted body to the newly created frame in mjs_bodyToFrame.
...
Also associate all children that need a parent body to the parent of the deleted body.
This is a bug that was causing the former children of the body that gets transformed to a frame to not be children of the new frame.
PiperOrigin-RevId: 702702853
Change-Id: I36d48f0446bc87c665b18d34e0b0609d82c70f51
2024-12-04 06:30:21 -08:00
Alessio Quaglino
82b6dbeb40
Copy attached spec before attaching anything else.
...
Spec were copied after bodies are attached, so the reference to the source spec got lost during mj_copySpec().
PiperOrigin-RevId: 701287267
Change-Id: I55eff53c7ae9d42b03957be48ea506b80d274e03
2024-11-29 07:41:49 -08:00