Implementation:Google deepmind Mujoco mj validateReferences
| Knowledge Sources | |
|---|---|
| Domains | Validation, Model_IO |
| Last Updated | 2026-02-15 06:00 GMT |
Overview
Concrete tool for validating internal reference integrity of a compiled MuJoCo model provided by the MuJoCo C API.
Description
The mj_validateReferences function checks all internal cross-references in an mjModel using the X-macro expansion system to iterate over all pointer arrays. It validates that every integer reference (body ID, joint ID, geom ID, etc.) falls within the valid range for its target array.
Usage
Called automatically during binary model loading. Can be called explicitly after programmatic model modification to catch reference errors.
Code Reference
Source Location
- Repository: mujoco
- File: src/engine/engine_io.c
- Lines: 1721-2111
Signature
const char* mj_validateReferences(const mjModel* m);
Import
#include <mujoco/mujoco.h>
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| m | const mjModel* | Yes | Compiled model to validate |
Outputs
| Name | Type | Description |
|---|---|---|
| return | const char* | NULL if valid; error message string if invalid |
Usage Examples
#include <mujoco/mujoco.h>
mjModel* m = mj_loadModel("robot.mjb", NULL);
if (m) {
const char* err = mj_validateReferences(m);
if (err) {
printf("Validation error: %s\n", err);
mj_deleteModel(m);
return 1;
}
}