Repolode
google

google/filament

A real-time physically based rendering engine for Android, iOS, Linux, macOS, Windows and WebGL2, designed to be small and efficient on Android.

Stars
20,637
Forks
2,283
Open issues
209
Last commit
3 hours ago

What is it?

Filament is a real-time physically based rendering (PBR) engine written in C++. It targets Android, iOS, Linux, macOS, Windows and WebAssembly/WebGL2, with APIs for native C++, Java/JNI on Android and JavaScript. Its backends include OpenGL, OpenGL ES, Metal, Vulkan and WebGPU, so the same scene can run across most mainstream graphics platforms.

The renderer is a clustered forward design with a physically based material model covering metallic workflow, clear coat, anisotropy, cloth and subsurface approximations. It includes image-based lighting, physical camera and light units, a range of shadow techniques, screen-space reflections and refraction, and a post-processing stack with tone mappers, color grading and anti-aliasing.

The project also ships a glTF 2.0 loader (gltfio) with many KHR and EXT extensions, plus host tools such as the material compiler matc and the cmgen environment preprocessor. Materials are compiled ahead of time into binary packages that the runtime loads.

Key features

  • 01Native C++, Java/JNI and JavaScript APIs across major platforms
  • 02Multiple backends including Vulkan, Metal, OpenGL ES and WebGPU
  • 03Physically based materials with clear coat, anisotropy and cloth shading
  • 04Shadows, screen-space reflections and refraction, and image-based lighting
  • 05Built-in glTF 2.0 loader with many extensions

Use cases

  • Adding 3D rendering to an Android app or game with a small footprint
  • Building cross-platform real-time 3D viewers for glTF models
  • Rendering product visualizations or scenes in a browser via WebGL2
  • Experimenting with physically based shading and rendering techniques

Quick start

  1. 1

    Add the Filament Android library via Gradle dependency

    implementation 'com.google.android.filament:filament-android:1.78.1'
  2. 2

    Or add the iOS pod via CocoaPods

    pod 'Filament', '~> 1.78.1'
  3. 3

    Download stable builds and host tools from the releases page, or build from source using the build manual

Things to know

  • Native C++ builds require building from source following the separate build manual.
  • Release tools such as matc must match the runtime library version.

Topics

FAQ

What is filament?
A real-time physically based rendering engine for Android, iOS, Linux, macOS, Windows and WebGL2, designed to be small and efficient on Android. Filament is a real-time physically based rendering (PBR) engine written in C++. It targets Android, iOS, Linux, macOS, Windows and WebAssembly/WebGL2, with APIs for native C++, Java/JNI on Android and JavaScript. Its backends include OpenGL, OpenGL ES, Metal, Vulkan and WebGPU, so the same scene can run across most mainstream graphics platforms.
Is filament free to use? What license does it have?
filament is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
Is filament still maintained?
Actively maintained. The last commit to filament was on Oct 22, 2026.
What can I use filament for?
Adding 3D rendering to an Android app or game with a small footprint Building cross-platform real-time 3D viewers for glTF models Rendering product visualizations or scenes in a browser via WebGL2 Experimenting with physically based shading and rendering techniques
How do I install filament?
Add the Filament Android library via Gradle dependency: implementation 'com.google.android.filament:filament-android:1.78.1' Or add the iOS pod via CocoaPods: pod 'Filament', '~> 1.78.1' Download stable builds and host tools from the releases page, or build from source using the build manual
Where can I get filament?
The source code and installation instructions are on GitHub: https://github.com/google/filament

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects