About the FIBO HDRI Studio Project
🌟 Inspiration
The primary inspiration for the FIBO HDRI Studio came from a deep frustration shared by 3D artists and architectural visualizers: the inflexibility and creative bottleneck imposed by existing static HDRI libraries. When lighting a complex scene, achieving a specific mood—a sunset with a particular cloud density, or a subtle, overcast reflection—often required endless searching, minor compromises, or even costly reshoots of real-world environments. We were inspired to create a tool that moves beyond the "find it" paradigm to a "design it" philosophy, putting real-time, parametric control over every aspect of environmental lighting directly into the artist's hands. We envisioned a tool that could generate any imaginable sky, on demand.
💡 What it does
The FIBO HDRI Studio is a cloud-based, procedural generation platform that allows 3D professionals to create highly customized High Dynamic Range Images (HDRIs) for use as environmental maps in any major 3D rendering engine (e.g., Blender, V-Ray, Unreal Engine, Unity).
Key functionalities include:
- Parametric Sky Generation: Users can adjust parameters such as sun/moon position, time of day, atmospheric haze, cloud type and density, and light temperature.
- Real-time Preview: A spherical preview pane shows the HDRI output and how it affects a simple, reflective 3D object in real-time.
- Asset Deployment: The platform renders the custom environment as a high-resolution, high-bit-depth HDRI file (e.g.,
.hdror.exr) and facilitates direct integration or download. - Presets and Sharing: Users can save their complex setups as custom presets and share them with the community.
🏗️ How we built it
The project was structured into three main components: the front-end interface, the back-end computation engine, and the procedural sky model.
- Front-end (User Interface): We used React for the single-page application, focusing on a clean, intuitive, and highly responsive interface dominated by visual sliders, color pickers, and the real-time preview viewport. WebGL/Three.js was crucial for rendering the spherical HDRI preview in the browser.
- Back-end (Computation & API): The core logic runs on a Python/Django back-end hosted on a cloud infrastructure (e.g., AWS or Google Cloud). This server manages user accounts, handles API requests, and queues the computationally intensive HDRI generation tasks.
- Procedural Generation Engine: This is the heart of the project. It was primarily built using custom C++ code integrated with Python via bindings (e.g., PyBind11) for maximum performance. We implemented an advanced physical sky model based on rayleigh and mie scattering (see challenges below) and utilized noise functions (like Perlin and Simplex noise) to procedurally generate photorealistic cloud formations that are then mapped onto the sphere and correctly lit.
🚧 Challenges we ran into
- Real-Time Preview Performance: The most significant challenge was providing a high-quality, real-time preview in the browser. A standard HDRI is very large. We overcame this by implementing a multi-resolution rendering scheme, where the back-end quickly generates a low-resolution, compressed version for the preview while the user is adjusting parameters.
- Accurate Physical Sky Model: Developing the procedural engine to be physically accurate was complex. We needed to ensure the light intensity and color temperature followed physical laws, specifically the mathematical modeling of atmospheric scattering: $$I(\lambda) \propto \frac{1}{\lambda^4} \text{ (Rayleigh Scattering for Sky Color)}$$ This required carefully calibrating parameters to ensure sun brightness and sky falloff looked correct across different times of day (high dynamic range).
- Cloud Complexity and Performance: Generating realistic, volumetric-looking clouds procedurally is computationally heavy. We initially tried a full volumetric approach but switched to a highly optimized 2.5D layer-based noise map approach to balance visual quality with rendering speed.
- HDRI Format and Bit Depth: Handling the required 32-bit floating-point precision for the output
.hdror.exrfiles across the entire pipeline (generation, transfer, and download) was crucial to maintain the high dynamic range required for professional lighting.
🎉 Accomplishments that we're proud of
- Achieving Photorealism through Parametric Control: We are most proud of the system's ability to generate custom skies that are indistinguishable from captured photographic HDRIs, but with the flexibility of a procedural tool.
- The Intuitive UI/UX: Designing a complex lighting tool that is easy for a novice to use, yet powerful enough for a professional, was a major win. The real-time visual feedback loop is a key achievement.
- Seamless Integration: Successfully exporting the custom HDRI file in a high-fidelity format that instantly works across multiple major 3D software packages.
🧠 What we learned
We learned the critical importance of computational efficiency in cloud-based creative tools. Initial proof-of-concept renders took several minutes; through aggressive optimization of the C++ procedural core, we managed to bring the high-resolution render time down to under 30 seconds for most scenarios. This taught us that a strong server-side rendering pipeline and language choice (C++ for computation, Python for orchestration) are essential for any successful procedural tool. We also gained deep insight into the physics of atmospheric light scattering.
🚀 What's next for FIBO HDRI Studio
- Advanced Weather Systems: Implementing dynamic rain, snow, and fog parameters.
- Object Placement (Ground Plane Integration): Allowing users to procedurally add ground planes, simple terrains, or water surfaces into the HDRI sphere for better horizon matching and lower-hemisphere realism.
- AI-Driven Preset Generation: A feature where a user uploads an inspiration image (e.g., a photo) and the system uses machine learning to generate a starting set of parameters that closely match the light, color, and atmosphere of the image.
- Direct Plugin Integration: Developing dedicated plugins for popular DCC applications like Blender and 3ds Max for even more seamless, one-click HDRI loading.
Log in or sign up for Devpost to join the conversation.