Google Filament
v1.54.5Real-time physically based rendering engine optimized for Android and mobile platforms
Development Activity
Sample Renders
Overview
Best for
Mobile and embedded applications requiring high-fidelity physically based rendering with minimal overhead and cross-platform GPU support
Not ideal for
Projects needing a full game engine with built-in physics, scripting, scene editing, or real-time global illumination
Strengths
- Exceptional PBR material model with a thorough technical whitepaper documenting every rendering equation, approximation, and design trade-off
- Mobile-first architecture with aggressive performance optimizations — clustered forward rendering, draw call batching, and dynamic resolution scaling
- Comprehensive multi-backend support spanning Vulkan, OpenGL ES 3.x, Metal, desktop OpenGL 4.1, and WebGL 2.0 from a single codebase
- Production-quality image-based lighting pipeline with precomputed irradiance maps, prefiltered specular environment maps, and a BRDF LUT
- Mature material compiler (matc) generates optimized, platform-specific shaders from a high-level material definition language
Limitations
- No built-in scene editor, visual authoring tool, or asset pipeline — requires custom application code for scene composition and interaction
- Limited global illumination: supports screen-space ambient occlusion and baked lightmaps only, with no real-time GI solution
- Steeper integration curve than higher-level engines like Godot or Babylon.js — designed as a rendering library, not a full engine
- Clustered forward rendering architecture limits the number of dynamic lights compared to deferred rendering approaches
- Community is smaller than three.js or Babylon.js despite Google backing, resulting in fewer third-party tutorials and integrations
Background
Google Filament is an open source, real-time physically based rendering engine designed with mobile-first priorities. Originally built to power 3D experiences on Android — including the Sceneform AR framework — Filament has grown into a cross-platform rendering library supporting Vulkan, OpenGL ES, Metal, WebGL 2.0, and desktop OpenGL. Its material system is grounded in a comprehensive PBR model documented in a widely-referenced technical whitepaper that details every approximation and design decision.
Filament's architecture is optimized for constrained hardware. Its rendering pipeline uses a clustered forward renderer with dynamic resolution scaling, aggressive draw call batching, and a material compiler (matc) that generates optimized GPU shaders for each backend. The engine provides high-quality image-based lighting with prefiltered environment maps, screen-space ambient occlusion, screen-space reflections, and post-processing effects including bloom, depth of field, motion blur, and temporal anti-aliasing.
As a rendering library rather than a game engine, Filament requires application-level code for scene management, input handling, and asset loading. It ships with gltfio, a glTF 2.0 loader, and filamat, a material definition system. Filament is used in production across Google products including Google Maps, Google Search AR, and third-party applications requiring high-fidelity mobile rendering. Its C++ core is complemented by Java/JNI bindings for Android and JavaScript bindings via WebAssembly.
Quick Start
git clone https://github.com/google/filament && cd filament && ./build.sh releaseRelated Renderers
Community & Resources
Community
Paper & Citations
Notable Publications
Tutorials & Resources
Performance Benchmarks
No benchmark data available for Google Filament yet.
Benchmarks will be added as more renderers are tested across our standard scene suite.
Learn about our methodology