All work

Personal project

Maintenance Hangar

A vehicle-maintenance and cargo hub inside a deep-space station — built to hold up at industrial scale without the texture budget that usually implies.

Ownership: Personal project. Every element described here — the modular kit, the trim sheet, the spline Blueprint, the lighting and the set dressing — is my own work. Work in progress; the images show the environment mid-development.

Wide high-angle view of a sci-fi maintenance hangar built from a modular kit, captured in the Unreal Engine viewport, with a central lit maintenance platform, overhead gantries and yellow crane supports.
My role
Sole environment artist — kit design, materials, lighting, set dressing, Blueprint tooling
Ownership
Personal project
Status
Work in progress
Tools
Unreal Engine 5, Blender, Substance 3D Painter

What I did

  • Designed the modular kit and its snapping grid
  • Authored the trim sheet in Substance 3D Painter
  • Built the Lumen lighting for readability and pathing
  • Wrote the spline mesh-instancing Blueprint

Assets: All geometry, materials and lighting authored by me. No marketplace or library assets.

Measured

Trim sheet
Single 4K sheetOwner's published ArtStation breakdown
Material IDs
One across the environmentOwner's published ArtStation breakdown

The problem

A hangar has to read as enormous, and it has to read as functional. Those two goals fight each other: the scale that makes a space impressive is exactly what makes it repetitive and expensive to texture, and a big open volume gives the player no obvious route through it.

So the brief I set myself had three constraints. The space had to feel massive and lived-in. Player pathing had to stay legible without signage doing all the work. And the whole thing had to stay inside a texture budget that a real-time scene could actually afford.

A kit, not a set

Rather than model the hangar as a single environment, I built a modular kit — structural trusses, floor gridding and wall panels designed to snap together on a consistent grid.

The practical payoff is texel density. Because every piece is authored against the same grid and the same unwrap rules, surface detail stays consistent everywhere in the environment instead of drifting as the space expands. It also means the hangar can grow: adding another bay is assembly, not modelling.

One trim sheet instead of many bakes

The texturing approach is the decision I would defend hardest. Instead of unique bakes for every structural beam and wall panel, I authored a single 4K trim sheet in Substance 3D Painter containing corrugated metal, cable bundles, bolted seams and non-directional grunge.

Modular pieces — the yellow crane supports, the ceiling trusses — are then unwrapped to specific coordinates on that sheet. The result is detail that reads as bespoke across the entire hangar while resolving to a single material ID.

Tiling trims do have a tell: repetition. I broke that up with deferred decals for floor markings and safety warnings, which lets me put specific, narrative wear exactly where the composition needs it without adding a texture set.

Lighting as navigation

Lumen handles real-time global illumination, but the lighting design is doing a navigational job. Bright work lights pick out the central maintenance platform, which is where I want the eye to land first.

Under the walkways I let contrast go deep. Those shadows add the depth and industrial grime the space needs, and the brightness gradient between them and the platform is what tells a player which way is "in".

A spline Blueprint for the transit tube

The curved transit tube running through the background is not modelled by hand. I built a Blueprint that instances and deforms static meshes along a 3D spline: I move the spline points, and it recalculates how many segments are needed and handles their orientation and spacing.

This is the kind of Blueprint work I do — tooling that removes repetitive placement from the art process, rather than gameplay programming.

Making scale legible

Large environments lose their sense of size without a human reference. Traffic cones, crates and terminal stations are placed specifically to give the viewer something whose real-world size they already know, which is what makes the crane supports and trusses read as massive.

The composition uses a high-angle perspective so the floor layout and overhead gantries are both visible, with the floor markings and the horizontal transit tube acting as leading lines into the depth of the scene.

Breakdown

One sheet, one material ID

How the trim sheet is allocated. The kit is unwrapped to fixed coordinates on a single 4K sheet, so detail reads as bespoke while the environment stays on one material ID.

Trim sheet allocationA single 4K trim sheet containing four kinds of strip — corrugated metal, cable bundles, bolted seams and non-directional grunge. Modular kit pieces are unwrapped to specific coordinates on that one sheet, so the environment resolves to a single material ID, with deferred decals layered on top.One 4K trim sheet · Substance 3D PainterCorrugated metalCable bundlesBolted seamsNon-directional grungeunwrapped tofixed coordinatesModular kitStructural trusses · floor gridding · wall panelsconsistent texel density across the environmentExample pieces named in the breakdownYellow crane supports · ceiling trusses→ one material ID+ deferred decals — floor markings, safety warnings

Demonstration

The kit, assembled

Five bays built from four repeated module types — truss, brace, beam, floor plate. The wireframe is the same geometry as the solid pass, which is the point of a modular kit: one set of parts, consistent texel density, arbitrary length.

Shown as a live 3D view on larger screens with motion enabled.

Gallery

View on ArtStation

Next

More breakdowns

  • Horizontal bar chart comparing GPU milliseconds per render pass before and after optimisation, measured at 2560 by 1440 on an RTX 3060. TemporalSuperResolution falls from 5.83 to 3.70 milliseconds, RenderDeferredLighting from 3.57 to 0.96, RenderVelocities from 2.65 to 0.05 and ShadowDepths from 3.70 to 2.63, while ShadowProjection rises from 2.61 to 3.09 and Prepass from 0.19 to 2.01.

    Performance Audit

    A measured optimisation pass on a scene I did not author: 30.45 → 22.60 ms GPU frame time at native 1440p, with the method and the missed target reported in full.

  • Unreal Engine 5 material instance editor showing the layered material stack with base wood, painted metal and emissive trim layers.

    Modular Layered Material System

    An Unreal Engine 5 master material driven by ID masks, so one mesh can swap between wood, painted metal and emissive trim without leaving the engine.