Ezri Sullivan

Technical Artist

Procedural Shelf Maker

Problem: During the development of my thesis project, Booking It, a massive library needed to be populated and iterated on quickly.

Solution: I created a construction script based tool to procedurally generate the shelves and books based on an end point controlled by the user, in addition to implementing customizable options for the meshes included, book colors, and level of disorder. 

Problem: Due to the number of shelves needed, runtime performance, startup times, and editor load times were hindered.

Solution: I implemented hierarchical instancing and cull distancing to improve performance, removed unnecessary physics and collision causing long PIE start times, and converted the construction script into a call-in-editor script to greatly reduce editor and compiling load times. This provided the additional benefit of allowing the user to save particular iterations of the actor and set dress around it accordingly.

Outcome: The library was able to be designed and set dressed quickly and efficiently, with changes able to be made effortlessly, saving countless hours.

Developed: Unreal Engine 4 Blueprint

Tool functionality
Screenshot of shelves used in my thesis project, Booking It

Unique Instanced Book Material

Problem: While creating a procedural shelf maker, I needed a way for the books to have a variety of unique textures despite being hierarchically instanced.

Solution: I used per instance custom data values to be set in the blueprint upon the generation of each book. The material then used these values to choose from a variety of texture sample sets, three CID masks, and multiple color options.

Outcome: Successfully used a single material for every book to meet performance standards, while simultaneously having the variety in appearance of numerous separate materials. This also gave the user control over the colors and mask options at a large scale. As a result, performance was drastically improved and hours were saved that may have otherwise been spent creating extra materials and adjusting them individually as needed.

Developed: Unreal Engine 4 Blueprint

Material combination examples
Screenshot of material used on instanced meshes

Book Set Dressing Tools

Supplementary tools using the previous book material and similar logic as the shelf maker

Generates stacking books following a user controlled spline. Available parameters to control rotation and color.


Places books in a pile while accounting for other objects' collision. Available parameters to control the pile's radius and height, as well as the books' colors.

Tiling Spline Mesh Material

Problem: The design of a curved room required numerous unique railing assets.

Solution: I built a spline-based construction script that allowed for the customization of each asset in editor. In order to have a tight control over the railing's length, I used a small, tiling model segment.

Problem: The small segments resulted in the material being extremely repetitive.

Solution: I used a material parameter to increasingly offset the UV's based on the length of each segment.

Outcome: The room was able to set dressed without the time and performance cost of needing multiple unique assets, and without sacrificing visual sophistication.

Developed: Unreal Engine 4 Blueprint

Tool functionality
Screenshot of spline used in my thesis project, Booking It

HLSL Shader Study - Refraction

A study of 3D graphics and HLSL shader development, coded from scratch in Visual Studio’s C# framework, MonoGame.

I wanted to learn the programming and mathematical foundations behind game engines from a systems, lighting, and shader standpoint. I focused on the creation of a shader which uses a render target of the scene texture to calculate refraction. 

*Crystal model created by Nhi Pham
Breakdowns and code available upon request