
TRITON
BACHELOR THESIS
The objective of this bachelor thesis, classified as an artistic-technical work, is to explore and develop a method for procedurally generating 3D spaceships, tailored for use and modification within Unreal Engine.
PROJECT INFO
Date
9th semester (2024) @ Game Design, HTW Berlin
Duration
14 weeks
Technology
SideFX Houdini 20.4, Unreal Engine 5, Photoshop, Substance Designer, Substance Painter
My learnings
I had the opportunity to experiment extensively with procedural generation in Houdini by developing this procedural spaceship generator. I have become acquainted with the possibilities as well as the challenges, and I am now better equipped to assess when it is worthwhile to create a procedural tool for real productions, what to consider, and how much time the development would require.




Spaceship variations rendered in Houdini
WORKFLOW
Before starting the project, a Miro board was set up
for documentation, featuring an integrated Kanban
board and a calendar with defined milestones.
Additionally, the progress of each week‘s work
was continuously documented throughout the
entire project. This included research, questions,
approaches, and progress through screenshots and
videos.
It is important to acknowledge that the
spaceship generator is not designed to fulfill
every conceivable requirement. When creating a
spaceship for a video game, it must align with the
game‘s graphical style and specific requirements.
Nevertheless, the aim includes offering adjustable
polycounts and configuring the material setup for a
high level of flexibility.


The basic shape of the spaceships emerged as
the most critical factor in their creation. It was
essential to enable the generation of many different
and interesting shapes, though it was clear from
the outset that certain edge cases would not be
feasible. For instance, circular structures were
intentionally avoided in favor of more angular and
pointed shapes, aiming to lean toward the design
of fighter-class spacecraft. Breaking down the basic
forms of spaceships from my research led to the
initial ideas for implementation.
Based on this foundation, additional components
such as wings, engines, the cockpit, and detail
elements like weapons were meant to be added to
this base shape.
To assess the language of form of the crafted spaceships or their components,
silhouettes were made as often as possible.
DEVELOPMENT
Base Shape
The generation process relies on combining basic geometric shapes, primarily
tubes and boxes, into a cohesive structure. To incorporate smaller detail
shapes, an additional loop was employed to attach elongated boxes to the
base form.
Since the initial shapes often overlap, boolean operations are employed to eliminate self-intersections and create a clean base form.This raw shape is then smoothed to improve its overall appearance. However, at this stage, the result often still resembles a collection of separate shapes rather than a unified design. To address this, the entire mesh is segmented into smaller pieces using Voronoi noise, and each piece is individually smoothed.
The pieces are then recombined, resulting in a more cohesive and polished base structure.

Armor Generation
The armor design for the spaceship was inspired by a method presented in a
talk by Akira Saito, utilizing Voronoi noise to segment the mesh into distinct
sections.
Random points are distributed across the spaceship surface, and Voronoi
noise is applied to divide the mesh accordingly. By ensuring symmetry during
this process, the result is a series of intricate, sci-fi-inspired patterns.
To add further variation, some of the segments were selectively removed,
leaving parts of the spaceship uncovered by armor. Additionally, the armor
itself was divided into two separate layers, introducing further diversity in the
material distribution and enhancing the overall design complexity.

Adding Details
Additional meshes like engines, a cockpit, or weaponry are generated or modeled and integrated into the spaceship design.
Some of these meshes are embedded into the base structure, allowing armor to partially cover them for a more cohesive and layered appearance.
The placement of these additional objects is guided by specific parameters, with points distributed across the spaceship to determine their locations. Alternatively, a grid-like structure is overlaid using raycasts, enabling the objects to adapt seamlessly to the highly variable base shapes.




UVs and Materials
Several approaches were employed for UV
unwrapping and material assignment.
Handcrafted meshes were manually unwrapped and
each was assigned a material that could be easily
swapped in Unreal Engine for flexibility in design
customization.
Procedural UVs were generated for components
such as the armor, cockpit, and engines.
However, the base shape proved too variable for a
practical solution within the available timeframe. A
tri-planar mapping technique inside Unreal
Engine was the alternative for applying more
complex materials to irregular geometries.