Utilities to get materials stored on a remote server
Project description
MaterialX Materials
Introduction
Welcome to MaterialX Materials.
This site hosts a set of libraries and utilities to query remote databases for materials which can either be mapped to MaterialX materials or are natively stored in that format.
Last Updated: September, 2025
Links
- Home Page
GitHub repository.
- Related utilities and libraries can be found at:
Utilities
Python or Javascript implementations.
Usage Examples
<iframe src="https://www.youtube.com/embed/4KiPW9IUR6U?rel=0&vq=hd1080" title="Using Material Libraries" width="100%" height="600px" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen> </iframe>
1. PhysicallyBased
An interactive page for extracting PhysicallyBased uses a Javascript implementation found here
2. AMD GPUOpen
A command line utility is available here. This usesNode.js to allow access to fetch materials from the GPU Open site(which is not available via a web page).
A Flask application is also available which uses the Python package with a Web based front here.
3. ambientCg
A NodeJS / Express application can also be found on the MaterialXWeb site.
This is designed to be a general purpose MaterialX material inspector supporting ambientCg and GPUOpen currently with the intent to add new libraries as they become available.
4. PolyHaven
A Python library and command polyHavenLoader and polyHavenLoaderCmd are currently available which can
produce a filtered list of assets (textures) which have
MaterialX representations. This list cna be used to download
specific assets and save to zip format.
A Javascript library and Web interface is available here. Filtering by classification, name tags, and dependent image resolution is available. Materials may be previewed and / or saved.
Loading into Web Editor
Below are screenshots of materials fetched from PhysicallyBased, GPU Open, ambientCg> and PolyHaven (left to right images respectively).
Note that the material zip from GPU Open and ambientCg is directly read into the editor via it's zip loading option. PolyHaven builds a zip to allow loading via the zip loading option.
Library Dependencies
The Python utilities require:
- The MaterialX 1.39 or greater package for PhysicallyBased OpenPBR shader creation. The current build is against 1.39.4.
- The
requestspackage. - The
pillowpackage for image handling for GPUOpen package handling
The GPUOpen Javascript logic requires:
node-fetchif fetch is not available in the version of Node.js used.yargsfor the command line utility
Package Building
The GitHub repository can be cloned.
The Python package can be built using:
pip install .
This will pull down the dependent Python packages as needed.
Build scripts can be found in the utilities folder.
build.shwill install the package and run package commands to update package data.buildDocs.shwill prepare documents and run Doxygen to build API docs.
The GPUOpen Javascript utility requires Node.js to be installed. From the package folder (javascript\JsGPUOpenLoaderPackage) the following should be run:
npm install # Install dependent packages
npm run build # Setup runtime area
Usage
Python Commands
-
Query all materials fom PhysicallyBased and convert them to all support shading models. Save the material list and corresponding MaterialX files in the default output location. The build will include this information Python package under the
datafolder.python physicallyBasedMaterialXCmd.pyor
materialxMaterials physbased -
Query all materials fom GPUOpen. Extract out a few material packages (zip). Save the material lists, material names and unzipped packages (MaterialX and images) in the default output location. The build will include this information Python package under the
datafolder.materialxMaterials gpuopen --materialNames=1 --saveMaterials=1
-
Download the materials list fom ambientCG:
materialxMaterials acg --saveMaterials True
-
Extract out a material package for the "WoodFloor038" material from ambientCG requesting the package where the images are 2K PNG files:
materialxMaterials acg --downloadMaterial "WoodFloor038" --downloadResolution 2
-
Examine all texture assets on PolyHaven, and find all ones which have MaterialX resources. Does not download the asset.
polyHavenLoaderCmd.py --fetch --download_id=""
-
Extract out a specific MateriaX asset with a given identifier.
polyHavenLoaderCmd.py --fetch --download_id="aerial_asphalt_01"
-
Extract out the first 10 MaterialX assets.
polyHavenLoaderCmd.py --fetch -c 10
-
Scan locally downloaded MaterialX asset information to download.
python -m materialxMaterials polyhaven --load --download_id="aerial_asphalt_01"
GPU Open Node.js Utility
The utility can be run from the javascript\JsGPUOpenLoaderPackage folder as follows:
npm start -- [<arguments>]
or:
node gpuOpenFetch.js [<arguments>]
with the appropriate arguments. It supports the same options as the Python utility -- namely material information, and package (zip) downloads. For the following 2 lines are equivalent to download a material called "Moss Green Solid Granite".
node gpuOpenFetch.js -n "Moss Green Solid Granite"
npm start -- -n "Moss Green Solid Granite"
Library
A Jupyter notebook demonstrates the direct usage of the Python library. The output of the notebook can be found here. The notebook can found in the Github repository under the examples folder.
Results
The following are some samples which have been rendered using the MaterialXView utility which is part of the MaterialX binary distribution.
Examples
Details about some examples can be found in the Examples pages| Emerald Peaks Wallpaper | Indigo Palm Wallpaper | Oliana Blue Painted Wood |
|---|---|---|
|
|
|
|
| Ketchup | Cooking Oil | Brass |
|---|---|---|
|
|
|
|
| Metal (53) | Paving Stones (142) | Wood Floor (38) |
|---|---|---|
|
|
|
|
|
|
|
|
API Reference
The API reference can be found here
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file materialxMaterials-1.39.4.tar.gz.
File metadata
- Download URL: materialxMaterials-1.39.4.tar.gz
- Upload date:
- Size: 36.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
595c782f6e0d988c5dafccb64e6b77999b48c7a8e2e33b3f0d934ac58f3b7e8d
|
|
| MD5 |
7bdc9c6a2b4183ced3ccae79c713074b
|
|
| BLAKE2b-256 |
c184370758018774b6cbdb3bf7c2c376d19a9b66cdbf77040feea04cd9194515
|
File details
Details for the file materialxMaterials-1.39.4-py3-none-any.whl.
File metadata
- Download URL: materialxMaterials-1.39.4-py3-none-any.whl
- Upload date:
- Size: 37.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fa9bbec444bf5bf8a63f5a27e771512b31005d85be9d3c1fc40c42eb24fbcc4a
|
|
| MD5 |
bf20c9273e45e52766e6f044d9080f86
|
|
| BLAKE2b-256 |
580edc04f2fce5c1c9dc6c75f4a685d7b70af3f400e5fb3591e3abd49a7e194a
|