Skip to main content

MuJoCo + Google Filament — high-fidelity, faster-than-OpenGL PBR rendering for MuJoCo

Project description

MuJoFil — MuJoCo + Google Filament

High-fidelity, physically-based rendering for MuJoCo, powered by Google Filament instead of the legacy fixed-function OpenGL path — sharper materials, real image-based lighting, and faster frames on modern GPUs.

pip install mujofil

That's it. The Filament engine is statically compiled into the wheel and the material packages ship inside it, so there's no separate SDK, no compiler, and no PYTHONPATH setup. MuJoCo itself comes from its own pip wheel (a dependency).

⚠️ One thing pip can't install for you: a Vulkan GPU driver

MuJoFil renders on the GPU via Vulkan (with an OpenGL fallback). That driver is part of your operating system and cannot be bundled in a wheel. MuJoFil detects this for you — if it's missing you'll see a clear message on first import mujofil, and mujofil-doctor prints exactly what to install:

OS Install command
Ubuntu/Debian sudo apt install libvulkan1 mesa-vulkan-drivers vulkan-tools
Fedora sudo dnf install vulkan-loader mesa-vulkan-drivers vulkan-tools
Arch sudo pacman -S vulkan-icd-loader vulkan-tools <gpu-vulkan-driver>
macOS LunarG Vulkan SDK (MoltenVK): https://vulkan.lunarg.com/sdk/home#mac
Windows Latest GPU driver, or LunarG SDK: https://vulkan.lunarg.com

NVIDIA GPUs also need the proprietary driver. Headless/no-GPU machines can use the software rasterizer (mesa-vulkan-drivers, "lavapipe"). After installing, run mujofil-doctor to confirm.

Verify your setup

mujofil-doctor      # prints a GPU/Vulkan diagnostic; exit 0 = ready to render

Quick start

import mujoco
from mujofil import VFRenderer, RenderConfig

model = mujoco.MjModel.from_xml_path("scene.xml")
data = mujoco.MjData(model)

r = VFRenderer(model, RenderConfig(width=1920, height=1080))
mujoco.mj_step(model, data)
rgb = r.render(data)        # (H, W, 3) uint8

What ships in the wheel

  • mujofil/_vf_mujoco_native.*.so — the Filament renderer (Filament linked statically; only libc++/libunwind bundled alongside via auditwheel).
  • mujofil/materials/*.filamat — precompiled Filament material packages.
  • Pure-Python API (VFRenderer, RenderConfig, VFRenderWrapper).

MuJoCo is not bundled — the bindings read mjModel/mjData through pointers and call no MuJoCo functions, so the mujoco pip package satisfies it at runtime.

Requirements

  • A GPU with a working Vulkan (preferred) or OpenGL driver — same as any realtime renderer. For headless CI, a software Vulkan (e.g. lavapipe) works.
  • Linux x86-64 (manylinux wheels). macOS / Windows wheels are produced by the same cibuildwheel config.

Building from source

export FILAMENT_DIR=/path/to/filament      # a Filament release
pip install .                              # scikit-build-core + CMake

Multi-platform release wheels are built in CI with cibuildwheel.

License

Apache 2.0 License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mujofil-0.1.0.tar.gz (1.1 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

mujofil-0.1.0-cp313-cp313-manylinux_2_34_x86_64.whl (6.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

mujofil-0.1.0-cp312-cp312-manylinux_2_34_x86_64.whl (6.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

mujofil-0.1.0-cp311-cp311-manylinux_2_34_x86_64.whl (6.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

mujofil-0.1.0-cp310-cp310-manylinux_2_34_x86_64.whl (6.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

File details

Details for the file mujofil-0.1.0.tar.gz.

File metadata

  • Download URL: mujofil-0.1.0.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for mujofil-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d1ea929bc98b90251319e5ffdaf2a3e20e74091f5cd30fde430fad7015fb9cee
MD5 c311db3bfeaa42effb64f28dcd26075f
BLAKE2b-256 b54356487faa03f54b522dc8b5f8110dedc86532a0331948b2d15284866ab989

See more details on using hashes here.

Provenance

The following attestation bundles were made for mujofil-0.1.0.tar.gz:

Publisher: wheels.yml on tau-intelligence/MuJoCo-Filament

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mujofil-0.1.0-cp313-cp313-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for mujofil-0.1.0-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 dd21089c46fec31823e184535901976fc1d25d05b00ba8995be68f29b55e78f5
MD5 daf3b56156fbb7b5585aa298fe03784f
BLAKE2b-256 62268a7c1488638dd4f03b79de80f27377bd6345e42679a056985cf25f7decb4

See more details on using hashes here.

Provenance

The following attestation bundles were made for mujofil-0.1.0-cp313-cp313-manylinux_2_34_x86_64.whl:

Publisher: wheels.yml on tau-intelligence/MuJoCo-Filament

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mujofil-0.1.0-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for mujofil-0.1.0-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 c40beb4b3b21badad7d62bbd34a8151ba7116797cf8852afd85dfdd380af0583
MD5 d0ecf8c5adeb2b10d86d1cb061fbaff6
BLAKE2b-256 088960a6e947b6df9020650e2746a689ae485e94f51aa4b2cbdfd86b934d3cef

See more details on using hashes here.

Provenance

The following attestation bundles were made for mujofil-0.1.0-cp312-cp312-manylinux_2_34_x86_64.whl:

Publisher: wheels.yml on tau-intelligence/MuJoCo-Filament

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mujofil-0.1.0-cp311-cp311-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for mujofil-0.1.0-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 5891212badbf06c75bc4eed886e9e64e719c08657fc977b7c0a89eebbb9a1762
MD5 d313d3f38d00c06b814938c0a4dc9a9e
BLAKE2b-256 3bdbc983a0453d48321900754c0e34273ab370e0c8bf97724022a36473ca503f

See more details on using hashes here.

Provenance

The following attestation bundles were made for mujofil-0.1.0-cp311-cp311-manylinux_2_34_x86_64.whl:

Publisher: wheels.yml on tau-intelligence/MuJoCo-Filament

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mujofil-0.1.0-cp310-cp310-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for mujofil-0.1.0-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 443a48d5bdc7002ed821f4fbb5b794ae8df189b5e8071b6f0e26168a7b59b1bf
MD5 e757c142ea1e5121c4d6ccac59d726b2
BLAKE2b-256 f6f91010b75a98289af7bd0261f23de1e4f956d620c0b5cf407457ff8b8a5fa4

See more details on using hashes here.

Provenance

The following attestation bundles were made for mujofil-0.1.0-cp310-cp310-manylinux_2_34_x86_64.whl:

Publisher: wheels.yml on tau-intelligence/MuJoCo-Filament

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page