Juyong Jeon has shared the workflows behind the Amalfi Coast-inspired environment, explaining how Houdini was used for landscaping and layout and discussing their approaches to lighting and water simulations.
Introduction
Hello everyone, my name is Juyong Jeon, and I'm an Environment Artist specializing in procedural workflows. I began my career in concept art in Korea, but I quickly became fascinated with building worlds in 3D, which eventually led me to film VFX. For the past 4 years, I have worked professionally in Canada as both an Asset and Environment Artist, contributing to projects such as Andor Season 2, The Boys Season 4, and Wednesday Season 1. You can find my full filmography on IMDb.
While my work often involves modeling and texturing with Maya and Mari, I have been refining my skills in large-scale procedural environments using Houdini through personal projects. I enjoy exploring new tools and workflows, focusing on creative problem-solving rather than adhering to a single method.
Here, I'd like to give a brief overview of how I approached this project, highlighting some parts featured in the breakdown video as well as a few additional aspects.
Working With Reference
I look for locations and references that work well with procedural workflows, as not every scene is suited to them. I discovered the Amalfi Coast through drone footage on YouTube and was later inspired by a commercial from an Italian beer company. The mix of dramatic cliffs, colorful architecture, and natural scenery made it the perfect subject.
My main goal with this project was to create a modular procedural workflow that allowed me to make adjustments at any stage. I wanted to focus on flexibility rather than a rigid setup. To achieve that, I used Solaris and USD, which helped manage the complexity and keep the scene efficient. For the mood and lighting direction, I was influenced by the look of Tenet.
Blockout & Terrain
For the initial terrain, I used World Creator, which offers a layer-based workflow with real-time previews. I exported the Height Map and brought it into Houdini's Height Field to continue the blockout and scene layout.
I also used additional geometry to blend seamlessly with the existing terrain, while allowing manual adjustments to better match the reference landscapes. The terraced terrain was set up to allow manual painting, with the ability to add or remove terraces dynamically.
Buildings
For the building blockout, I scattered them based on the extracted terrace areas and kept the setup editable for manual adjustments. Rather than creating every asset myself, I chose to use KitBash3D assets so I could dedicate more time to the environment and overall scene development.
In large-scale projects, viewport performance is crucial. To keep it responsive, I created proxy versions for each model, which significantly improved the performance. For heavy terrain geometry, I used custom masks to isolate key areas and remeshed in Houdini, optimizing the scene without losing detail.
Unwrapping wasn't needed because all texturing used procedural masks and triplanar projection. I used masks to define regions like cliffs, rocks, beaches, the town, and the waterline, and added manual painting for finer variation.
Cliffs were refined with VOP networks and enhanced with Normal and Displacement Maps. The water surface was created by blending multiple animated noise patterns to create natural ripples.
Simulating waves would have been too heavy and unnecessary for distant water, so I used edge masks with noise and a white shader to mimic white water efficiently.
I organized and optimized all the assets, created proxies, and saved them as USD for efficient use in Solaris. I then structured the scene into layers, such as buildings, trees on the mountains, trees in the town, parasols, crowds, and ships, to keep everything manageable.
For scattering, I built separate setups for each asset type. This lets me distribute them procedurally while still keeping control over placement and density. My focus was always on maintaining overall balance across the scene rather than over-detailing one specific area.
The lighting was straightforward. I used an HDRI for base lighting and refined the scene with Karma's physical lights. I added a touch of yellow to the sunlight to capture the Tenet-inspired mood. Rendering was done in Karma, and final compositing and grading were handled in Nuke.
Conclusion
The project took about three weeks. Planning carefully and developing a clear concept helped me work efficiently, and using a render farm saved a lot of rendering time. One challenge early on was staying motivated when results weren't immediately visible. By creating rough versions first and checking the overall mood regularly, I could track progress and anticipate the outcome.
It was also a great experience to really feel the strengths of Solaris, USD, and Karma. Working in Solaris with USD made viewport performance and scene loading extremely fast and efficient.
My advice to beginning artists would be to start by establishing the overall mood and balance of the scene. Once that foundation is solid, the rest of the process becomes much easier to manage.