The 3D Handbook
Topic

Trim sheets

Textures made of horizontal strips that tile in one direction, shared by many meshes; why studios use them, how to lay one out, the bevelled "Ultimate Trim" technique, UV workflow, and when trims are the wrong tool.

texturingtrimsmodularuv-mappingworkflow

A trim sheet is a texture divided into horizontal strips, each of which tiles left to right. Mouldings, panel edges, pipes, skirting boards, bevels and rows of bolts all live on one sheet, and many different meshes place their UVs on whichever strip they need. Tim Simpson calls trim textures "absolutely the backbone of most environment work" (Polycount: TUTORIAL: Trim Textures for environment art…).

Where a tileable material repeats in both directions and fills a surface, a trim repeats in one direction and runs along an edge or a band.

#Why studios use them

Memory. One sheet replaces dozens of unique textures. Tim Simpson says trims matter "especially when dealing with tight memory budgets", keeping "a crisp texel density without relying on massive 4k unique unwrap textures" (Polycount: TUTORIAL: Trim Textures for environment art…).

Fewer materials. Every mesh that uses the sheet shares one material, so the engine can batch them more easily (see draw calls). Tim Simpson also suggests non-square sheets such as 1k × 4k or 2k × 4k as "a good way to reduce drawcalls" when a mesh set shares one material (Polycount: Creating Trim Sheets 4 Part Tutorial…).

Consistency and speed. Once the sheet exists, texturing a new kit piece is a UV job, not a painting job. On DOOM Eternal, Chase Long describes a workflow that "leans heavily on tiling materials and trim sheets" and allows "fast creation and iteration but also plenty of sharing all around" (80 Level: Designing Environments for DOOM Eternal).

Portfolios. Tim Simpson writes that over half of junior environment applicants have "ZERO examples of tiling texture use or trim sheet knowledge in their portfolio", and that he would trust an applicant more with "a strong use of trim textures in at least one portfolio piece" (Polycount: TUTORIAL: Trim Textures for environment art…).

#Anatomy of a sheet

A square 2048 by 2048 pixel trim sheet on the left, divided into horizontal strips with pixel heights labelled from top to bottom: 256 cornice, 256 panel edge, 128 skirting, 128 thin metal edge, 256 bevel strips, 512 wide panel, 512 flat filler area. On the right, a wall section is shown with arrows linking its cornice, skirting and panel to the matching strips.
Strips stack vertically and tile horizontally. Every height is a power of two and every strip starts on a multiple of its own height, so borders stay on whole pixels as the texture is mipmapped.Diagram by the handbook author

A typical sheet for one material family (stone, painted metal, wood) contains:

  • Wide strips for big features: cornices, door frames, large panels.
  • Thin strips for small trims, cables, seams and edges.
  • Bevel strips: flat colour with a normal map that fakes a rounded edge (see the Ultimate Trim below).
  • A flat or near-flat area that can act as a small tileable for filler faces.
  • Unique-ish cells for a vent, a grate or a plaque, if the budget allows. These do not tile.

Tim Simpson's advice: keep each sheet to one material type, such as all metal or all stone, because mixed roughness values are harder to tune in the engine. Avoid copying the top half of the sheet with small changes, which wastes memory; make the trims more varied instead (Polycount: Creating Trim Sheets 4 Part Tutorial…).

Not every trim sheet is a stack of plain strips. EMC3D's video on trim types sorts them into two types plus a "modern hybrid", with examples from Assassin's Creed (a boat and a castle), 45-degree corners, asset skirting and a Bizarre Creations art test (YouTube: The Different Types Of Trim Sheets & How They…).

#Layout rules

1. Plan from the kit. Tim Simpson's first video in his series is entirely about planning which pieces a sheet must serve (Polygon Academy: Planning & Creating Trim Sheets For Games…). On Polycount he says "the less winging it the better usually" and recommends working backwards from designers' proxy models (Polycount: Creating Trim Sheets 4 Part Tutorial…). Nicolas Bucco's course likewise puts trim sheet planning straight after planning the modular kit (ArtStation Marketplace: Modular Building Kits and Trim Sheets Course).

2. Fix the texel density first. The sheet's pixel size and your texel density decide how big each strip is in the world. Beyond Extent says to "match your trimsheet layout as well as match the texel density of the scene", applying the target density to the UV islands first and then scaling them to the closest strip, usually within "around 25% up or down" (Beyond Extent: Texel Density).

3. Make strip heights powers of two, and start each strip on a multiple of its height. The rule follows from how mipmaps work. Each mip level halves the texture. A strip 256 px tall that starts at row 512 still starts and ends on whole pixels at 1/2, 1/4 and so on down to 1/256 size. A strip 300 px tall starting at row 400 does not: at 1/8 size it would run from row 50 to row 87.5, so the bottom pixel mixes two strips. The TrimForge add-on for Blender builds this check in: it warns about strips "narrower than 16 px" and non-power-of-two resolutions, and pads strips so they "are aligned to the mip levels" (Superhive Market: TrimForge — Trim Sheet Workflow).

4. Leave padding. Even aligned strips bleed into each other as mips blur. In the Ultimate Trim thread, Makkon stresses that "padding is very important", and Epitaph points out that lower-resolution versions of a trim need more padding to avoid bleeding (Polycount: The 'ultimate trim' technique from Sunset…). See UV packing and padding.

5. Tile horizontally, and test it. Every strip must wrap seamlessly at its left and right edges. Polynaught noticed seams where the two ends of a circular trim met; Tim Simpson replied that the seam is tiny and that "in 99% of cases you will never notice it" (Polycount: Creating Trim Sheets 4 Part Tutorial…).

#Making the sheet

Plan before you build. EMC3D's follow-up video on trim planning (September 2024) is organised as a process: a colour overlay plan, then a trim sheet plan, a warning not to rush, when to start trim sheets, using the blockout, and a recommended process (YouTube: What Does Good Trim Sheet Planning &…). The order matters: the blockout tells you which strips the kit actually needs, so the sheet is planned from the level rather than invented in isolation. See blockout and modular kits.

There are three common ways to build the content of a sheet. They can be mixed.

#The Ultimate Trim (bevelled trims)

At GDC 2015, Morten Olsen of Insomniac Games presented "The Ultimate Trim", the technique a small team used to texture the open world of Sunset Overdrive. It used a specific trim layout and normal map structure to improve production speed, memory and performance, supported by a UV mapping script and a custom shader (GDC Vault: The Ultimate Trim: Texturing Techniques of…).

The core idea, as artists reconstructed it on Polycount: the sheet contains strips whose normal map encodes a bevel at an exact 45 degrees. A real mesh gets small chamfered edges, and those chamfer faces are UV-mapped onto the bevel strips, so the normal map makes the hard chamfer read as a smooth rounded edge (Polycount: The 'ultimate trim' technique from Sunset…).

Left, a cross-section of a box corner with a single 45-degree chamfer face, with arrows showing the chamfer's face normal at 45 degrees. Middle, the chamfer face's UV island placed on a narrow bevel strip of the trim sheet whose normal map shades from facing up to facing sideways. Right, the result: the corner reads as a smooth rounded edge.
Ultimate-Trim style bevels: a cheap chamfer in the mesh, mapped onto a strip whose normal map bends the shading smoothly across 45 degrees each way.Diagram by the handbook author

What the Polycount thread found when people tried to reproduce it:

Tim Simpson calls bevel size a style choice: for hard-surface sci-fi, a "chunky bevel" fits better than the smoother Sunset Overdrive look (Polycount: Creating Trim Sheets 4 Part Tutorial…).

The artist's food cart example: baked bevels from the trim sheet replace most modeled bevels and stand in for a unique bake.Matthew Trevelyan Johns, via ArtStation

#UV workflow

  1. Model the piece to the grid of your kit (see grids and metrics).
  2. Unwrap and straighten. Each band of faces that will use a strip becomes a straight, rectangular UV island.
  3. Set texel density to your project target.
  4. Snap islands to strips. Move each island vertically onto the right strip; let it run off the left or right edge freely, since the strip tiles.
  5. Adjust the mesh, not just the UVs. Tim Simpson warns you will often "squash and stretch parts of your mesh" or add edge loops so pieces fit the trims (Polycount: Creating Trim Sheets 4 Part Tutorial…).
  6. Check in the engine under real lighting, with a moving light on bevels.

Tim Simpson's fourth video covers UV mapping tips for this process (Polygon Academy: Trim Texture Tutorial - Environment Art 101).

#Examples

A trim study inspired by Tim Simpson's Polygon Academy videos: the whole shrine uses one shared texture, with UVs placed to build every moulding and decoration (about 10,400 faces). Inspect the textures in Sketchfab's model inspector to see the sheet.Chuwakcz, via Sketchfab
A small building (about 2,500 faces) textured entirely with a trim sheet the artist built in Substance Designer. Notice how the same strips repeat on window frames, ledges and the roof edge.Batuhan13, via Sketchfab

#Common mistakes

#Further reading and watching

The short case for trims and an index to the four-part series; watch first, then Part 1 below. Watch on YouTube
Shows how to plan strips around the pieces of a kit before you sculpt anything. Watch on YouTube
Goes beyond the strip layout to other trim types, with Assassin's Creed examples, 45-degree corners and a trim corner error to avoid; watch after the Polygon Academy basics. Watch on YouTube

References

  1. PixelMasher (Tim Simpson) and others · TUTORIAL: Trim Textures for environment art and props · Polycount, 2019 · forum · accessed 2026-10-21
  2. Polycount forum (PixelMasher, Epitaph, Polynaught and others) · Creating Trim Sheets 4 Part Tutorial - Polygon Academy (thread) · Polycount, 2019 · forum · accessed 2026-10-21
  3. Chase Long (interviewed by Arti Sergeev) · Designing Environments for DOOM Eternal · 80 Level · article · accessed 2026-10-21
  4. EMC3D - Game Art · The Different Types Of Trim Sheets & How They Are Used In Games (Part 1) · YouTube, 2024 · video · accessed 2026-10-21
  5. Tim Simpson · Planning & Creating Trim Sheets For Games - Trim Texture Tutorial Part 1 · Polygon Academy (YouTube), 2019 · video · accessed 2026-10-21
  6. Nicolas Bucco · Modular Building Kits and Trim Sheets Course · ArtStation Marketplace · course · accessed 2026-10-21
  7. Timothy Dries · Texel Density (deep dive) · Beyond Extent, 2022 · article · accessed 2026-10-21
  8. TrimForge developer · TrimForge — Trim Sheet Workflow (version notes) · Superhive Market · tool · accessed 2026-10-21
  9. dzibarik, Makkon, Clark Coots, huffer, JedTheKrampus, Epitaph and others · The 'ultimate trim' technique from Sunset Overdrive · Polycount, 2015 · forum · accessed 2026-10-21
  10. EMC3D - Game Art · What Does Good Trim Sheet Planning & Preparation Look Like? (Part 2) · YouTube, 2024 · video · accessed 2026-10-21
  11. Tim Simpson · Trim Texture Tutorial - Environment Art 101 · Polygon Academy (YouTube), 2019 · video · accessed 2026-10-21
  12. FastTrackTutorials · Creating Advanced Trim Sheets for Games (ArtStation Learning listing) · ArtStation · course · accessed 2026-10-21
  13. JamesRay, Dreyzie and others · Kinmel Hall UE4 Environment Study · Polycount, 2019 · forum · accessed 2026-10-21
  14. Morten Olsen (Insomniac Games) · The Ultimate Trim: Texturing Techniques of Sunset Overdrive · GDC Vault, 2015 · talk · accessed 2026-10-21
  15. Matthew Trevelyan Johns · The Last of Us: Part I...Trim Pipeline · ArtStation · web · accessed 2026-10-21
  16. Edgar A. Martinez · "The Last of Us: Part 2" - Med - Ratking Combat · ArtStation · web · accessed 2026-10-21
  17. Tim Wilmsen · Baldur's Gate 3 - Glasshouse Modular Set · ArtStation · web · accessed 2026-10-21
  18. Paweł Kostecki · Indiana Jones and the Great Circle - Tomb Kit · ArtStation · web · accessed 2026-10-21
  19. Tsvetelina Valkanova (Ubisoft Sofia) · A Look at the Material Workflow in Assassin's Creed Valhalla · 80 Level · article · accessed 2026-10-21
  20. Trevelyan and others · Star Citizen...The Gladiator...ART DUMP · Polycount, 2015 · forum · accessed 2026-10-21
  21. François Hurtubise (interviewed by Kirill Tokarev) · Using Tileable Textures in Game Environments · 80 Level · article · accessed 2026-10-21
  22. Emiel Sleegers (FastTrackTutorials) · Creating Advanced Trim Sheet Textures for Games - In-Depth Tutorial Course · Gumroad / ArtStation · course · accessed 2026-10-21
  23. Class Creatives · How AAA Studios Texture Huge Worlds | The Last of Us & Valorant Trim Sheet Workflows · YouTube, 2026 · video · accessed 2026-10-21
  24. Sydney Saphira · Once you go trim sheet, you never go back (an honest workflow) · YouTube · video · accessed 2026-10-21
  25. Tyler Smith · Primary Shapes · ArtStation Learning · course · accessed 2026-10-21
  26. ArtStation · ArtStation Learning to Remain Free for All · ArtStation Magazine, 2021 · article · accessed 2026-10-21
  27. Dekogon Studios · Artstation Learning - Environment Production in UE5 · ArtStation · web · accessed 2026-10-21

Last updated 2026-10-22