Log into your account to keep track of your progress. You can work through the lessons without logging in but your progress will be lost when you refresh the page.


Project Pegasus's goal was to utilize Unreal 5 features, such as Nanite, and push for a high level of detail. The team developed a workflow for generating procedural cliffs to add additional detail to the landscape.

Learn how to create Digital Assets to convert a heightfield to geometry and split off the cliff sections. You’ll then subdivide and displace the geometry using height maps, and split larger cliffs into tiles. Then, learn how to assemble the Digital Assets into a TOPs network to automate generating cliffs for the entire island.

Importing a large amount of Nanite geometry into Unreal presents many challenges. It becomes important to manage computer memory usage. In the later lessons, you’ll learn how to manage computer resources and avoid crashing Unreal when importing the geometry into Unreal.

Note for Lesson 12 - You’ll be shown how increasing the subdivision to its fullest extent causes memory issues and crashes Unreal. Importing and processing the Nanite geometry will be very memory intensive. The lesson will demonstrate what will happen when your computer runs out of memory and Unreal crashes. You’ll learn to import the geometry in smaller batches and avoid these memory issues.



Ian Smith has 10+ years of working on pre-rendered and real-time projects and is currently working with SideFX on Project Pegasus, a showcase of Houdini procedural workflows with UE5. Ian is also CG Supervisor at NSC Creative, an award-winning studio specialising in immersive experiences, including VR, theme parks and fulldome.

More from Ian Smith


  • zisu666666 2 months, 4 weeks ago  | 

    Thanks for the tutorial!

  • binbinwei8 2 months, 4 weeks ago  | 

    It seems to be missing from the project file.

    • iansmithartist 2 months, 3 weeks ago  | 

      Thanks, will try to update this as soon as possible.

  • donlanlan.lee 2 months, 3 weeks ago  | 

    hi, I get a error when I cook the geometry import node ,flowing the tutorial. the error:
    Empty or missing file path
    Invalid input geometry
    How should I do ?

    • iansmithartist 2 months, 3 weeks ago  | 

      I've tried to recreate your error but have been unable to. Are you able to give me more information? It might be useful to post on the forum in Houdini Learning Materials and share your Houdini file. https://www.sidefx.com/forum/10/

  • ehabqurah.graphtut 2 months, 3 weeks ago  | 

    excellent very very wonderful

  • nnniiannn 1 month, 3 weeks ago  | 

    Kami Sama!

  • KosITGaming 1 month, 2 weeks ago  | 

    Hello, i am new to houdini and i really enjoyed these tutorials, but i get stuck on lesson 9 - Importing HDA into Unreal . everything is working fine in houdini. but in unreal engine when i want to cook it says 1 waiting and 1 cooking and then fails 2 after a couple seconds and the cook logs say: One or more upstream nodes have failed work items. This node is not fully generated thats starts from the 03_Extract_Cliffs_Split all the way to HE_OUT. I guess thats because it already fails at loading the landscape. Any idea what i might be doing wrong? in houdini it al works perfectly

  • KosITGaming 1 month, 2 weeks ago  | 

    I got it working, turns out i had the load landscape hda file set with $hip as source directory in the top network. Now the cooking works but unreal crashes when it starts baking. when i turn of auto bake everything works fine, when i hit bake unreal crashes with this error:

    Assertion failed: PackageName.StartsWith(L"/" + FString(MountPointName)) [File:D:\build\++UE5\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\UObjectBaseUtility.cpp] [Line: 239]

    Anyone experienced this?

    • TimBayer 3 weeks, 4 days ago  | 

      I am having the exact same error, did you find a solution?

    • TimBayer 3 weeks, 4 days ago  | 

      In case anyone else runs into this, it's probably a path issue.

      In my unreal_bake_folder attribute, the path was missing the "/" in front of "/Game". Once I added the "/", deleted all the output files, and recooked everything, the bake worked.

  • 365384849 1 month, 2 weeks ago  | 


  • DevoStevo 2 weeks, 3 days ago  | 

    I just hooked up the PE_Heightfield_Layers_to_ID & Houdini gives the following error;

    "Traceback (most recent call last): File "/obj/geo1/PE_Heightfield_Layers_to_ID1/id_layer", line 8, in expression
    File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.590/houdini/python3.10libs\hou.py", line 40976, in dictAttribValue
    return _hou.Geometry_dictAttribValue(self, *args) hou.OperationFailed: The attempted operation failed. No attribute with this name exists".

    Anyone else had this issue?

Please log in to leave a comment.