- Category
- Developer Tools
- Rank
- No. 155Tools index
- Pricing
- Open Source
- Type
- TOOL
- Builder
- GitHub
- 20.5k stars
- Latest release
- v1.76.0
- Date
About
Google's real-time physically-based rendering engine for Android, iOS, desktop, and WebGL2 — production-grade 3D graphics for apps.
What it does
Filament gives applications a low-level scene, camera, material, lighting, and frame-rendering pipeline. Developers assemble renderable entities, load compiled material packages, and target several graphics backends through C++, Android Java bindings, or JavaScript.
Why it's ranked here
The case rests on breadth with practical depth. One engine spans mobile, desktop, and browsers while covering advanced lighting, shadows, reflections, color grading, antialiasing, dynamic resolution, and extensive glTF support. Its documentation also explains the mathematics behind its rendering choices.
What's good
The rendering stack is unusually complete: physically based cameras and light units sit beside image-based lighting, multiple shadow methods, screen-space effects, fog, and rich post-processing. Android receives packaged loaders and utilities, while native and web users share broadly similar concepts.
Tradeoffs
Integration is hands-on. Native applications must manage engine, swap chain, renderer, view, scene, camera, entities, and frame boundaries. Materials and environment maps require preprocessing, and host tools must match the runtime release. The glTF loader omits line loops and triangle fans.
How to use it well
Choose Filament when graphics programmers need controlled, consistent rendering across mobile, desktop, and web targets. Build an asset pipeline around matched release tools, compiled materials, processed environments, and glTF assets. It does not replace native window management or the surrounding application framework.
Technical notes+
README.md describes the Engine, Renderer, SwapChain, View, Scene, and Camera lifecycle, with material blobs generated by matc; native samples use SDL2 support from libs/filamentapp/. Android examples live under android/samples, iOS examples under ios/samples, and environment assets require cmgen or libiblprefilter. docs/android/dokka/index.md lists the Android API packages. docs/toc.js exposes documentation sections for builds, tests, debugging, libraries, tools, iOS tutorials, and web samples.
Observed
- Interfaces
- Native C++ API, Android Java/JNI API, and JavaScript API
- Platforms
- Android, iOS, Linux, macOS, Windows, and WASM
- Graphics backends
- OpenGL, OpenGL ES, Metal, Vulkan, WebGPU, and WebGL 2.0
- Packaging
- Android libraries through Maven, iOS through CocoaPods, plus release archives with host tools
- Asset interface
- Includes a glTF 2.0 loader with animation, compression, lighting, and material extension support
- Documentation structure
- Repository documentation covers core concepts, tutorials, debugging, tests, libraries, and host-side tools
Read from README.md, docs/android/dokka/index.md, docs/toc.js, docs/book.js, docs/mark.min.js, docs/searcher.js, docs/highlight.js, docs/clipboard.min.js, docs/elasticlunr.min.js.
What it can do
Render 3D models with physically-based materials
3D model data and material properties → Photorealistic rendered 3D graphics
Process real-time lighting and shadows
3D scene data with light sources → Dynamic lighting effects and shadow rendering
Generate cross-platform 3D graphics
3D scene description → Rendered graphics for Android, iOS, desktop, and WebGL2
Apply material shaders and textures
Material definitions and texture maps → Shader-processed surface rendering
Perform real-time 3D scene rendering
3D geometry and scene parameters → Live interactive 3D graphics at 60+ FPS
Execute GPU-accelerated rendering pipeline
3D rendering commands and resources → Hardware-optimized rendered frames
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.
