Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Implementation:Google deepmind Mujoco Engine Print

From Leeroopedia
Knowledge Sources
Domains Physics Simulation, Debugging, Serialization
Last Updated 2026-02-15 04:00 GMT

Overview

Provides human-readable text output of MuJoCo model, simulation data, scene, and sparsity structures for debugging and inspection.

Description

engine_print.c implements comprehensive text printing functions for all major MuJoCo data structures. It can serialize mjModel (model specification), mjData (simulation state), and mjvScene (visualization scene) to files or stdout in formatted text. The file includes internal utilities for printing integers, strings, floating-point numbers, 1D and 2D arrays, sparse matrices, block-sparse structures, and inertia tensors. It supports customizable float formatting and includes memory size reporting. The model printer outputs all model fields organized by element type (body, joint, geom, etc.), while the data printer covers all runtime arrays including contacts, constraints, and solver state.

Usage

Called via the public API functions mj_printModel(), mj_printData(), and mj_printScene() (or their formatted variants) for debugging and data inspection. The sparsity printing functions mj_printSparsity() and mj_printBlockSparsity() are used for analyzing constraint matrix structure.

Code Reference

Source Location

Key Functions

// print model to file with custom float format
void mj_printFormattedModel(const mjModel* m, const char* filename,
                            const char* float_format);

// print model to file with default format
void mj_printModel(const mjModel* m, const char* filename);

// print simulation data to file with custom float format
void mj_printFormattedData(const mjModel* m, const mjData* d,
                           const char* filename, const char* float_format);

// print simulation data to file with default format
void mj_printData(const mjModel* m, const mjData* d, const char* filename);

// print visualization scene to file
void mj_printScene(const mjvScene* s, const char* filename);
void mj_printFormattedScene(const mjvScene* s, const char* filename,
                            const char* float_format);

// print sparsity structure
void mj_printSparsity(const char* str, int nr, int nc,
                      const int* rowadr, const int* diag,
                      const int* rownnz, const int* colind, FILE* fp);
void mj_printBlockSparsity(const char* str, int nr, int nc, int nisland,
                           const int* island_efcadr, const int* island_efcnum,
                           FILE* fp);

Import

#include "engine/engine_print.h"

I/O Contract

Inputs

Name Type Required Description
m const mjModel* Yes Physics model to print
d const mjData* Yes (printData) Simulation state to print
s const mjvScene* Yes (printScene) Visualization scene to print
filename const char* Yes Output file path (NULL for stdout)
float_format const char* No Printf-style format string for floats

Outputs

Name Type Description
file output text Formatted text representation written to file or stdout

Related Pages

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment