filament | Filament is a real-time physically based rendering engine | Graphics library

 by   google C++ Version: 1.46.0 License: Apache-2.0

kandi X-RAY | filament Summary

kandi X-RAY | filament Summary

filament is a C++ library typically used in User Interface, Graphics, WebGL applications. filament has no bugs, it has no vulnerabilities, it has a Permissive License and it has medium support. You can download it from GitHub.

Filament is a real-time physically based rendering engine for Android, iOS, Linux, macOS, Windows, and WebGL. It is designed to be as small as possible and as efficient as possible on Android.

            kandi-support Support

              filament has a medium active ecosystem.
              It has 15904 star(s) with 1673 fork(s). There are 375 watchers for this library.
              There were 10 major release(s) in the last 6 months.
              There are 93 open issues and 1851 have been closed. On average issues are closed in 68 days. There are 6 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of filament is 1.46.0

            kandi-Quality Quality

              filament has no bugs reported.

            kandi-Security Security

              filament has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.

            kandi-License License

              filament is licensed under the Apache-2.0 License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              filament releases are available to install and integrate.
              Installation instructions, examples and code snippets are available.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of filament
            Get all kandi verified functions for this library.

            filament Key Features

            No Key Features are available at this moment for filament.

            filament Examples and Code Snippets

            No Code Snippets are available at this moment for filament.

            Community Discussions


            Make a solid mockup from an assembly in solidworks aka a shrinkwrap
            Asked 2022-Mar-30 at 09:25

            I have a complex assembly that I want to make a 3d printed mockup from. I don't want to have the 3d printer wasting tons of time and filament drawing in every shaft, bearing etc..

            Is there a way to make the entire assembly into a single solid (or better still a hollow shell)?

            Drawing is here


            Attempts so far -

            1. extracted model to STL and passed it to - but UI is confusing and I can't see how to download the shrink-wrapped model

            2. extracted stl and imported it into OpenSCAD - used difference function to "scoop out" the insides (specifically the heat exchanger, bearings and bolts) - render to stl - this was the first one to drop below 1kg of filament - I think there is something better, but this is what I went with 865g, 3+ days of printing :) lets hope no errors



            Answered 2022-Mar-21 at 00:55

            You can save an assemnly file into part file in Solidworks, just use save as, then select "part".

            But your actual goal is to "save filament", the 3D print software should have a setting for that, it usually name as "Infill Percentage", or infill density. Set this to 100% mean fill all volume with plastic, set it to a value that you think it has right balance between filamenet and strenth.

            You should be able to set the patterns as well.

            Some reference picuture are like: enter image description here



            Android: How to load a GLTF or GLB file from remote URL in filament
            Asked 2022-Feb-24 at 20:21

            I'm trying to load a remote asset (.glb or .gltf) into the ModelViewer in filament. The Google Filament sample-gltf-viewer shows a RemoteServer object but I'm not seeing how I can load a remote asset from a URL (e.g.

            I've tried the below but I get "Unable to parse glb file".

            The code for RemoteServer doesn't indicate where we can pass a URL.



            Answered 2022-Feb-24 at 20:21

            Issue has been resolved. The issue was that I wasn't fully downloading the file, and that the modelViewer.loadModelGlb needed to be called on the main thread.

            Here is the working code:



            How to set background color in Google Filament for Android?
            Asked 2022-Feb-23 at 20:11

            I'm following this tutorial for Filament:

            How do I set the background color to white?



            Answered 2022-Feb-23 at 20:11

            I figured it out. I need to set the skybox color.

            For instance, this sets the color to red.



            Programmaticaly parse journalctl to initiate an action
            Asked 2022-Feb-10 at 12:58

            When my 3d printer runs out of filament, it pauses without sending any alert message. The only entry I can find is a message that on journalctl like this one: Jan 22 04:36:39[2884]: INF - root:80 - PrintJobStatus updated! 6e408dcf-9887, paused

            I absolutely need to be alerted when the printer pauses, or else the print will be ruined. Is there a way to poll/parse journalctl programmatically, e.g. via a bash or python script, and send an email as appropriate?



            Answered 2022-Jan-31 at 06:54

            There are likely other ways to do this more elegantly than polling, but FWIW:

            1. journalctl can time-filter its output; e.g. to see the last 30 minutes activity:



            Laravel Filament: sum and count repeater
            Asked 2022-Jan-25 at 04:45

            I'm making a form using filament. I want to count the number of repeater I make, and the sum of the value I input.

            I want to make the default value of Total area is the sum of Field area, and the default value of Number of fields is to count the Field I generate. After reading the documentation, I don't think there are such features. But, I just want to make sure if there is a trick to make this happen.

            I tried to count($get('fields'), but it thrown an error:



            Answered 2022-Jan-24 at 16:06

            You can use $get variable and get the repeator Property. And you can use the Placeholder props and Set the content to it. Here is the result



            Measuring the distance between two lines using DipLib (PyDIP)
            Asked 2022-Jan-05 at 05:52

            I am currently working on a measurement system that uses quantitative image analysis to find the diameter of plastic filament. Below are the original image and the processed binary image, using DipLib (PyDIP variant) to do so.

            The Problem

            Okay so that looks great, in my personal opinion. the next issue is I am trying to calculate the distance between the top edge and the bottom edge of the filament in the binary image. This was pretty simple to do using OpenCV, but with the limited functionality in the PyDIP variant of DipLib, I'm having a lot of trouble.

            Potential Solution

            Logically I think I can just scan down the columns of pixels and look for the first row the pixel changes from 0 to 255, and vice-versa for the bottom edge. Then I could take those values, somehow create a best-fit line, and then calculate the distance between them. Unfortunately I'm struggling with the first part of this. I was hoping someone with some experience might be able to help me out.


            I am using DipLib because OpenCV is great for detection, but not quantification. I have seen other examples such as this one here that uses the measure functions to get diameter from a similar setup.

            My code: ...


            Answered 2022-Jan-02 at 22:56

            Here is how you can use the np.diff() method to find the index of first row from where the pixel changes from 0 to 255, and vice-versa for the bottom edge (the cv2 is only there to read in the image and threshold it, which you have already accomplished using diplib):



            SDL2 build error C2118: negative subscript
            Asked 2021-Dec-13 at 21:10

            I've been trying to build SDL2 using CMake + CLion + MSVC and I've got this error:



            Answered 2021-Dec-13 at 21:10

            I built it for x86. For x64 it works fine.



            PlaywrightCrawler continuous loading does not trigger handlePageFunction
            Asked 2021-Dec-03 at 17:18

            I have a PlaywrightCrawler to scrape Alibaba. But when I add a request to one page like:


            This page lasted to loading until timeout and handlePageFunction didn't be called.

            Actually, all the content has been loaded completed. I notice that some AJAX runs in the background.

            How do I force PlaywrightCrawler to call handlePageFunction even though AJAX didn't complete it?



            Answered 2021-Dec-03 at 17:18

            you can change your waitUntil parameter to go to the page as soon as the DOM loads using this:



            ERROR: CMake '3.19.0' or higher was not found in SDK, PATH, or by cmake.dir property
            Asked 2021-Jul-20 at 05:01

            I have done some searching and found that I should install CMake in SDK manager but the 3.19+ version does not show here as shown in the picture below.


            Is there anything that has to be done in order to have CMake 3.19?


            • The android studio current version is 4.2.2
            • This happen when I want to try google/filament samples in android


            Answered 2021-Jul-20 at 05:01

            you can manually download the newest cmake version ( and specify in gradle to use it:



            Android: Google Filament GLTF/GLB model not displayed
            Asked 2021-May-14 at 04:28

            My issue is that I'm trying to make a SurfaceView display a 3D model that's just a small part of the whole application layout. The layout includes multiple views for displaying other data; however, as soon as I create the ModelViewer the SurfaceView vanishes. When I use version 1.9.9 of Filament the layout is displayed, but heavily pixelated and seems to make other layout elements disappear. With v1.7.0 the other elements don't dissapear, but nothing is displayed.

            I'm using the following version in Gradle file:



            Answered 2021-Apr-28 at 19:30

            I fixed this a while back by making a copy of the ModelViewer class and making a custom ModelViewer3D class with a new constructor, which was a nice solution, because it gives you more control over the options than you would normally with the given ModelViewer.

            The uiHelper isOpaque field needed to be set to false to fix the above issue, and for a transparent background of the surface view the renderer needed to reset the clear options (which I made a separate function for, shown below).


            Community Discussions, Code Snippets contain sources that include Stack Exchange Network


            No vulnerabilities reported

            Install filament

            Download Filament releases to access stable builds. Filament release archives contains host-side tools that are required to generate assets. Make sure you always use tools from the same release as the runtime library. This is particularly important for matc (material compiler). If you'd rather build Filament yourself, please refer to our build manual.
            If you prefer to live on the edge, you can download a continuous build by following the following steps:.
            Find the commit you're interested in.
            Click the green check mark under the commit message.
            Click on the Details link for the platform you're interested in.
            On the top right, click on the Artifacts dropdown and choose an artifact.


            Filament, an in-depth explanation of real-time physically based rendering, the graphics capabilities and implementation of Filament. This document explains the math and reasoning behind most of our decisions. This document is a good introduction to PBR for graphics programmers.Materials, the full reference documentation for our material system. This document explains our different material models, how to use the material compiler matc and how to write custom materials.Material Properties, a reference sheet for the standard material model.
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
          • npm

            npm i filament

          • CLONE
          • HTTPS


          • CLI

            gh repo clone google/filament

          • sshUrl


          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link