Update (2026): GenPBR has grown a lot since this thread started. The live tool is at genpbr.com/generate — still browser-based and client-side for the public generator, with optional free accounts for higher resolution, saved projects, and API access. Everything below about how the algorithms work and the early UI still applies.
Contact shadows & cavity darkening — now supported (was “by request” in the original post)
Height map
Displacement / parallax workflows
Export: Download individual maps or batch-export for your pipeline. Upload a diffuse/albedo and generate normals from edge detection — works in both Canvas and WebGL modes.
Key features
Image → PBR texture: One upload generates normal, metallic, roughness, AO, and height maps.
Two processing modes:
Canvas API: CPU-based; works on all devices.
WebGL: GPU-accelerated; faster on supported hardware.
3D PBR viewer: Real-time preview with adjustable lighting (GPU recommended).
Local material library: Upload, tag, and version your materials.
Free tier: Anonymous 512×512 on /generate; free account unlocks 1024×1024 and daily credits. Paid plans add commercial licensing, API access, and higher monthly limits. (The “free forever” line in the original post reflected the early all-free launch.)
Glad you like it and find it useful! I’ve added another “all-in-one” type of tool for people like you.
I’ve just added a Local PBR Material Library to make organizing and managing your PBR materials easier than ever! With this powerful local storage system, you can now:
Upload and store your PBR materials for quick access
Tag materials for easy searching and filtering
Customize sort orders for efficient browsing
Store multiple maps (Normal, Metallic, Roughness) for each material
Track material iterations with version control
This feature is designed to streamline your workflow and keep everything organized in one place!
really cool features. just wanted to know, how does the whole library manage to save locally without losing any data? (not a web developer by any means so I really don’t know much)
Hey no worries, glad you think it’s cool and I appreciate you checking it out! I added some more features tying all the tools together with the library (along with the 3d preview tool), so you can load/add materials directly to the library without having to save/upload/organize the materials manually.
Here’s a quick explanation of how the local features work with the library:
The PBR Material Library saves your materials locally using an IndexedDB, which is a database system built directly into your browser (I utilize something called opendb to access this database). This system allows the tool to store all your materials (images aren’t stored as pngs or anything, the image is converted to raw data and stored), versions, and tags directly on your device without the need for any internet connection or external servers. You could even download the website locally and continue running it without internet.
This is all handled securely and privately, ensuring your data stays on your machine!
Local client-side means that once the server sends you the web page, everything can function offline without a connection. The website and your browser simply stores all of the algorithms, functions, etc that power and render the website, these are then built and compiled into static pages that can utilize these functions once the page is loaded/stored. The code that initially serves the frontend and backend (there’s really no backend beyond serving the page/code) is all built in TypeScript using a React framework called Next.js, served to the web by Vercel.
I learned WebGL originally learning GLSL shader programming for other engines, AI tools help me with the mathematics and algorithms a lot, I usually just provide the technique and implementation I want to use in my tools for writing the rendering & transformation logic.
IndexedDBs have no storage limits, but most browsers will ask you to confirm continued use if a website domain begins using over 50MBs of data or so. As mentioned previously, OpenDB is a javascript library I use to access your browser’s Indexed database.
Hey everyone!
I’m excited to announce that PBR-Gen has officially moved from pbr-gen.vercel.app to our new permanent home at GenPBR.com — featuring massive upgrades, new tools, and faster generation than ever before!
What’s New
GenPBR has evolved far beyond its original release — it’s now a complete PBR tool suite for artists, developers, and studios.
Here’s what’s new since the original launch:
Advanced Normal Map Algorithm (v2.3.5)
Completely rewritten from scratch for professional-grade results
Tangent-space accurate normals with per-pixel vector normalization
Eliminated artifacts and excessive saturation from previous versions
Smooth, realistic surface depth even at low strength settings
Consistent results across Canvas, WebGL, and server-side generation
We’ve deployed backend infrastructure for Blender and Substance plugin integrations — making GenPBR accessible directly inside your favorite 3D software.
GPU-Accelerated 2× Upscaling (v2.2.0)
High-quality bicubic interpolation
WebGL-powered GPU acceleration (10–50× faster)
Automatic fallback to CPU if GPU unavailable
Supports 4K → 8K upscaling in milliseconds
Bulk Upload & Download (v2.1.0)
Upload and process up to 10 textures at once (depending on plan)
BBS has had this tool out for years now, it uses your gpu to generate PBR textures from 1 or 2 textures. I would give it a try before giving information to someone I don’t know.
Hey thanks for the great resources! I haven’t used any alternatives and welcome older and newer tools to the space. I made GenPBR to use for my own workflow originally where it eventually evolved into this.
I have plans to remove the texture size and file size limit but have limitations with the web version. Memory management is a little trickier with a web app, but I’ve made progress on this and hope to remove these limits in the next month or so.
Whatever tools work best for you or anyone out there doesnt matter to me as long as people like the results they are getting. We’ve had 57 people sign up as of this morning alone with over 300 people actively using it daily and a lot of great feedback so i am happy to see people find it useful.