A free, browser-based suite for game developers. Featuring a full Painter and PBR Painter, Bake maps and export textures to major engines with presets.
✓ Windows
✓ macOS
✓ Linux
✓ No install needed
Tools
Everything a game dev needs
Designed to simplify the game art pipelines. This is just the beginning and will be an ever growing suite of tools.
Roadmap
Procedural materials, Google Drive for storage , Trim Tool and more.
On the roadmap
Pricing
Free to use, forever
Ads keep this free for everyone. Going Pro removes them and helps support on going development.
Free
$0 / forever
Full access to all tools, with ads shown in the workspace.
✓ All current tools
✓ All future tools
✓ Browser-based, no install
✓ Workspace ads
Pro
$5 / month
Ad-free workspace — same tools and layout as Free, without ads.
✓ Everything in free
✓ No ads
✓ Full workspace layout
Navigation
Tutorial
Learn how to move around Trumble: the menu bar, tool switcher, side panels, library, and workspace.
Use the tool dropdown in the top bar to switch between Home, Texture, Paint, and Bake; dock panels can
be opened from the Windows menu or shortcuts where available.
This page will expand with step-by-step visuals and shortcuts as we publish more documentation.
Learn how to import a mesh, set up PBR channels, paint directly on a 3D model, and export game-ready textures for Unity, Unreal, Godot, and Roblox — all without leaving your browser.
⏱ ~15 min·6 steps·No install required
Step 01
Create a Texture Document
Every texture project starts with a document. This sets the resolution and ties your layers and channels to a specific mesh later.
Open Trumble and click Start Texturing, or navigate directly to the Texture tool from the toolbar.
Go to File → New Texture Document. A dialog will appear.
Enter a document name and choose a texture size. For game assets, 2048 × 2048 is a solid default — use 4096 for hero props.
Click Create.
💡
Tip: You can always re-export at a lower resolution without re-painting. Start at 2048 and scale down at export time to save memory.
New Texture Document
Step 02
Import Your Mesh
The Texture tool paints directly on 3D geometry. You need a mesh with proper UVs to get started. Trumble accepts .obj and .glb files.
In the document settings panel on the right, locate the Model section and click Choose file.
Select your .obj or .glb mesh. The model will load into the 3D viewport.
Use left-click drag to orbit, right-click drag to pan, and scroll wheel to zoom.
If your mesh looks black or flat, confirm it has baked UV maps. Meshes without UVs cannot be painted.
⚠️
UV tip: Export UVs from your 3D app before importing. In Blender, use Smart UV Project or a manual unwrap, then pack islands before exporting.
3D ViewportTextureWireframeUV
Step 03
Understanding PBR Channels
Trumble uses a physically-based rendering (PBR) workflow. Each channel controls a different property of your material's surface. You paint into individual channels, and the engine combines them at runtime.
Color
Base albedo — the raw surface color with no lighting information.
Metallic
Black = non-metal. White = fully metallic. Most surfaces are 0 or 1.
Roughness
Black = mirror-smooth. White = fully diffuse / matte surface.
Normal
RGB-encoded surface details that fake geometry at no poly cost.
AO
Ambient occlusion — white = lit, black = shadowed crevices.
Emissive
Areas that glow. Colour multiplied by emission strength in-engine.
In the right-hand panel, each channel has its own slot. You can paint directly or drag in an image from the Assets Library to use it as a texture fill.
Step 04
Painting on Your 3D Mesh
Select a brush from the left panel and start painting directly on the mesh in the 3D viewport. Strokes are projected onto the UV map automatically.
Select the Brush tool from the left toolbar. Adjust Size, Hardness, Opacity, and Flow in the panel below it.
Pick a color using the color picker at the bottom of the left panel.
In the Channels section, choose which channel to paint into — Color is selected by default.
Click and drag on the mesh to paint. The stroke wraps around the UV islands seamlessly.
Switch channels at any time — for example, paint metallic stripes on armor, then switch to Roughness to add worn edges.
💡
Brush shortcuts: Use [ and ] to decrease / increase brush size. Hold Alt and drag to sample a color from the mesh surface.
✓
Projection modes: The Fill tool lets you choose between UV projection (paints on UV islands only) and Tri-Planar (tiles a texture over the 3D surface regardless of UV layout).
Step 05
Working with Layers & Masks
The Layers panel (bottom-right) works like a 2D editor. Each layer stores independent paint strokes, and you can combine them non-destructively using blend modes and masks.
Click + New Layer at the top of the Layers panel to add a layer above the current one.
Set the layer's blend mode from the dropdown (Normal, Multiply, Overlay, etc.) to control how it composites with layers below.
Right-click a layer and choose Create black mask or Create white mask to add a non-destructive mask. Paint white to reveal, black to hide.
Use the 3D Gradient, Ambient Occlusion, or Curvature modifiers to automatically generate masks based on mesh geometry — great for adding wear and grime in crevices.
💡
Curvature masks are especially useful for metals — set a Multiply layer with a dark, rough fill, then mask it by curvature to automatically apply wear only on convex edges.
Step 06
Export Textures
When you're happy with your textures, export them in one click. Trumble bundles your channels into the correct format for your target engine.
Go to File → Export Textures.
Set the output texture size (you can downscale here independently of your working resolution).
Pick your target engine preset. The correct channel packing is applied automatically.
Choose which maps to include (Color, Metallic, Roughness, Normal, Emission, Opacity).
Click Export. Files download as a zip to your browser's default folder.
Engine Preset
Packed Format
Notes
Unity
AlbedoMetalSmooth (RGBA)Normal
Metallic in R, Smoothness (inverted roughness) in A
Unreal
BaseColorOcclusionRoughnessMetallicNormal
ORM packing: AO→R, Roughness→G, Metallic→B
Godot
AlbedoORMNormal
Same ORM packing as Unreal; compatible with Godot 4 ORM material
Roblox
ColorMapNormalMapRoughnessMapMetalnessMap
Individual files; drag into Roblox surface appearance
🎉
You're done! Import your exported textures into your engine and assign them to your mesh. The PBR channels will map automatically when using engine-standard material nodes.
The Paint tool is Trumble's full-featured 2D canvas. Create alphas, edit texture maps, paint masks, and work with channels — all without leaving the browser. This tutorial walks you through everything from creating your first document to exporting a finished image.
⏱ ~10 min·6 steps·No install required
Step 01
Create a Paint Document
A paint document is a 2D canvas. It can be a standalone image, a texture you're editing, or an alpha map you'll later drag into the Texture tool.
Open Trumble and select the Paint tool from the top toolbar.
Go to File → New. The new document dialog will open.
Enter a document name and set your width and height in pixels, or choose from a preset (e.g. 2048 × 2048 for a tileable texture, 1920 × 1080 for a concept sheet).
Choose a color mode: RGB for full-color work, Grayscale for alphas and masks.
Set a background: White, Black, or Transparent. For alphas, start with Black. For painting, White or Transparent both work.
Click Create.
New Document
💡
Making an alpha brush? Choose Grayscale mode and a Black background. Paint in white to build up the alpha shape. When you export as PNG the alpha channel will be embedded automatically.
Step 02
Canvas & Navigation
The Paint canvas works like any professional 2D painting app. Once your document is open, here's how to move around efficiently.
Pan canvasSpace + drag
Zoom in / outScroll
Fit to screenCtrl0
Actual size (100%)Ctrl1
UndoCtrlZ
RedoCtrlShiftZ
Eyedropper / pick colorAlt + click
Switch to EraserE
Paint Canvas2DGridRulers
Step 03
Brushes & Settings
Select the Brush tool from the left toolbar. The properties panel beneath it gives you full control over how your strokes behave.
How much paint deposits per frame while holding the brush down
Combine low flow with high opacity for airbrush-style buildup
Spacing
Distance between each stamp of the tip along a stroke
Increase for textured / dotted stroke effects
Rotation
Fixed angle of the brush tip
Directional textures and hatching
Pen Pressure
Enables stylus pressure sensitivity for Size and Opacity
On by default when a drawing tablet is connected
💡
Quick size control:[ decreases brush size, ] increases it — no need to reach for the slider while painting.
You can drag alpha resources from the Assets Library directly onto the brush tip slot to use custom brush shapes — perfect for creating grunge, foliage, or fabric detail brushes.
⚠️
Jitter settings (Size, Flow, Angle, Position) randomize those properties on each stamp. Use small Size Jitter for organic textures, large Position Jitter for scattered particle effects.
Step 04
Layers & Blend Modes
The Layers panel is on the right side of the screen. Every layer is non-destructive — you can rearrange, hide, rename, and delete layers at any time without affecting other layers.
Click the + button at the top of the Layers panel to add a new layer.
Drag layers to reorder them. Higher layers render on top.
Click the eye icon to toggle layer visibility.
Click the blend mode dropdown (defaults to Normal) to change how a layer composites with those below it.
Adjust the Opacity slider (0–100%) per layer for transparency control independent of brush opacity.
The most commonly used blend modes for game texture work:
Normal
Default. Top layer covers what's below.
Multiply
Darkens. Great for shadows and grime.
Screen
Brightens. Good for light effects.
Overlay
Boosts contrast; darks get darker, lights get lighter.
Darken
Keeps the darker pixel from either layer.
Lighten
Keeps the lighter pixel from either layer.
Color Dodge
Extreme brightening. Good for emissive glows.
Color Burn
Extreme darkening. Deep shadows and vignettes.
💡
Workflow tip: Keep your base color on the bottom layer, then add a Multiply layer above for shadows and a Screen or Overlay layer for highlights. This separates your value structure non-destructively.
Step 05
Masks & Alpha Channel
Masks let you hide parts of a layer without deleting pixels. They're essential for non-destructive compositing and for creating custom alpha maps to use in the Texture tool.
Right-click a layer in the Layers panel and choose Create black mask (hides everything) or Create white mask (shows everything).
Click the mask thumbnail to select it. The mask is now the active paint target — you'll see a border around it.
Paint with white to reveal the layer, black to hide it. Greys create partial transparency.
To paint on the layer itself (not the mask), click the layer's image thumbnail.
To delete a mask, right-click the mask thumbnail and choose Delete mask. The original layer is untouched.
Layers Panel — Mask Active
✓
Alpha brushes: To save a layer as a reusable alpha brush, right-click the layer and choose Save to Library. Select the Alpha type. It will appear in your Assets Library and can be dragged onto any brush tip slot in the Paint or Texture tool.
Step 06
Export Your Image
When your painting is done, export it as a standalone image file to use in other tools, import into your game engine, or drag back into the Texture tool as a channel fill.
Go to File → Export Image.
Choose a file format — see the options below.
Click Export. The file downloads to your browser's default folder immediately.
PNG
Lossless with transparency. Best for alphas, masks, and any image where quality must be preserved.
JPEG
Compressed, no alpha. Best for reference sheets, concept art, or when file size matters.
WebP
Modern format with both lossy and lossless modes. Smaller than PNG, supports transparency.
💡
Using your image in the Texture tool? Export as PNG to preserve the alpha channel, then drag it into any channel slot (Color, Roughness, Emissive, etc.) in the Texture tool's material panel.
🎉
You're done! You now know how to create documents, paint with full brush control, layer non-destructively with blend modes and masks, and export for any pipeline. Explore the Assets Library to build up a collection of custom alphas and reusable brushes over time.
Baking transfers surface detail from a high-poly mesh onto texture maps that a low-poly mesh can use at runtime. Trumble's Bake tool lets you generate Normal, AO, Curvature, Position, and Thickness maps entirely in the browser — no offline renderer, no plugins.
⏱ ~15 min·6 steps·No install required
Step 01
What is Baking?
Baking is the process of transferring geometric detail from one mesh onto a 2D texture map. You sculpt or model fine surface detail on a high-poly mesh, then project it onto the UV layout of a low-poly mesh that your game engine can actually run in real time.
The result is a set of maps — most commonly a Normal map — that make the low-poly mesh look like it has the detail of the high-poly version, without the polygon cost.
High Poly
Sculpt / detail mesh
→
Bake
Project in Trumble
→
Maps
Normal, AO, Curvature…
→
Low Poly
Runtime mesh
→
Engine
Godot, Unity, Unreal…
💡
No high-poly mesh? You can still bake AO, Curvature, Position, and Thickness maps from a single low-poly mesh. These are driven by the mesh's own geometry rather than a high-to-low projection.
Step 02
Set Up Your Meshes
Good results start with well-prepared meshes. Before baking, make sure both your low-poly and high-poly meshes meet these requirements.
Requirement
Low Poly
High Poly
File format
.obj or .glb
.obj or .glb
UV map
Required — must have a clean, non-overlapping UV unwrap
Not required
Scale
Must match the high poly in world scale
Must match the low poly in world scale
Normals
Should face outward; recalculate before export
Should face outward
Origin
Centered at world origin (0, 0, 0) recommended
Same origin as low poly
⚠️
Overlapping UVs are the most common cause of bake artifacts. Every UV island on the low-poly mesh must occupy a unique space within the 0–1 UV range. Check this in your 3D app before exporting.
Mesh SetupLow PolyHigh Poly
Step 03
Configure the Bake
Open the Bake panel from the top toolbar. All bake settings live in a single dialog. Here's what each option does.
Click the Bake tool in the top toolbar to open the bake panel.
Under Output Resolution, select the pixel size for your baked maps. 2048 covers most game assets; use 4096 for hero props.
Set Dilation — this expands each map's UV island edges outward by that many pixels to prevent seams at island borders. 16–32px is a safe default.
Under Channel Maps, tick the maps you want to bake. You can bake multiple maps in a single pass.
Load your low-poly mesh using the mesh selector. This is the mesh whose UV layout the maps will be baked onto.
Optionally load a high-poly mesh if you want Normal map detail projected from it.
Adjust Projection Settings if needed (see table below), then bake.
Bake Panel
Setting
What it does
Recommended
Max Front Distance
How far in front of the low-poly surface to search for the high-poly hit
0.1–0.3 — increase if high poly detail is not being captured
Max Back Distance
How far behind the low-poly surface to search
0.1–0.3 — should match front distance
Soften Strength
Blurs the baked result slightly to reduce pixel-level noise
10–20% for a clean result; 0 for raw output
AO Quality
Number of ray samples used for ambient occlusion. Higher = less noise, slower bake
40–60% for most assets
AO Reach
How far AO rays travel. Larger reach = broader, softer shadows
20–30%
Ignore Back Faces
Prevents interior geometry from casting AO or being projected onto the bake
On for most character and prop work
Average Normals
Smooths hard normal seams at UV island borders
On for organic shapes; off for hard-surface/mechanical
Step 04
Map Types Explained
Trumble can bake six different map types in a single pass. Here's what each one is for and when to use it.
Normal Map
Encodes surface direction as RGB color. Fakes lighting detail from the high-poly onto the low-poly at no poly cost. The most commonly baked map.
World Space Normal
Like a normal map but in world space instead of tangent space. Used for some stylized shaders and matcap rendering in engines.
Ambient Occlusion
Grayscale map showing where ambient light is blocked by nearby geometry. White = open, Black = occluded. Adds depth and contact shadow.
Curvature
White on convex edges, black on concave creases. Essential for masking edge wear, dust, and rust in the Texture tool's material layers.
Position
Stores the XYZ world position of each surface point as RGB. Used for gradient-based masking and some procedural material effects.
Thickness
Measures how "solid" the mesh is at each point. Thin areas are white. Used for subsurface scattering (skin, leaves, wax) in PBR materials.
💡
After baking, drag the Curvature and AO maps directly into layer modifier slots in the Texture tool to automatically mask wear, grime, and edge highlights — no manual painting required.
Step 05
Run the Bake
With your meshes loaded and settings configured, you're ready to bake.
Click Bake selected mesh to bake only the currently selected mesh in the scene, or Bake all meshes to process everything at once.
A progress dialog will appear showing the current bake stage. Bake time scales with output resolution and AO quality — a 2048px bake with AO typically takes 5–20 seconds.
When complete, each baked map appears as a new entry in your Assets Library automatically.
To re-bake with different settings, adjust the panel and bake again — new results will overwrite the previous ones in the library.
⚠️
Browser tab must stay active during baking. Switching tabs or minimising the window can pause GPU work and significantly slow the bake. Keep Trumble in the foreground while baking.
Baking Progress
Step 06
Use Your Baked Maps
Once baking is done, your maps are in the Assets Library and ready to use. There are three common ways to work with them.
Where to use it
How
Texture Tool — Channel slot
Drag a baked map (e.g. Normal, AO) from the Assets Library directly into the corresponding channel slot in the Texture tool's material panel. It will be applied across the whole mesh.
Texture Tool — Layer modifier
Add a layer in the Texture tool, then drag your Curvature or AO map into that layer's mask slot. The layer will be automatically masked by the baked data — no painting needed.
Export to engine
Right-click any baked map in the Assets Library and choose Export as… to download it as a PNG. Import directly into your engine's material editor.
💡
Workflow tip: Bake first, then paint. Start every asset by baking your Normal, AO, and Curvature maps. Load them into the Texture tool as channel data and layer masks, then paint on top. You'll get better results with far less manual work.
🎉
You're done! You now know how to prepare meshes, configure a bake, understand every map type, and put baked data to work in the Texture tool. Combine baking with the Texture tool's layer system to build materials that look hand-crafted in a fraction of the time.
The Assets Library is the central hub for every resource you work with in Trumble — textures, alphas, materials, brushes, and baked maps all live here. Learn how to import, organise, and drag assets directly into your work in the Texture tool viewport.
⏱ ~10 min·6 steps·Texture Tool
Step 01
Opening the Library
The Assets Library panel lives at the bottom of the Texture tool viewport. It's always accessible while you're working — you don't need to leave the 3D view to find a resource.
Open the Texture tool from the top toolbar.
The Assets Library panel appears at the bottom of the viewport. Click the Assets Library header to expand it if it's collapsed.
The panel shows thumbnails for all currently available resources. You can scroll horizontally through them.
Use the filter tabs at the top of the panel to show All assets or narrow by type.
Assets LibraryAll AssetsTexturesAlphasMaterials
💡
The library persists across sessions. Resources you save to the Library scope are available every time you open Trumble — even in a new project.
Step 02
Asset Types
The Assets Library holds several types of resources. Understanding what each type is used for helps you keep things organised and find what you need quickly.
🖼️
Texture
Any image used as a surface map — color, roughness, AO, normal, or baked output. PNG, JPEG, or WebP.
◻️
Alpha
A grayscale image used as a brush tip shape. White areas are opaque, black areas are transparent.
⚪
Material
A full PBR material preset with all channels filled. Drag onto a layer's channel panel to apply all maps at once.
🎨
Brush
A saved brush configuration — tip shape, size, hardness, and jitter settings combined into a reusable preset.
📐
Baked Map
Output from the Bake tool — Normal, AO, Curvature, Position, or Thickness maps generated from your mesh.
🗂️
Imported File
Any image you've dragged in from your computer mid-session. Available immediately, saved to the scope you choose.
Step 03
Importing Assets
There are two ways to get resources into the Assets Library: importing files from your computer, or saving resources you've created inside Trumble.
Click the + Import button at the right of the library panel, or drag an image file directly onto the viewport from your file manager.
A dialog will appear asking where to import the resource. Choose a storage scope — Session, Project, or Library (see Step 4 for the difference).
The resource appears as a thumbnail in the panel immediately and is ready to use.
To save something you created in Trumble — like a baked map or a layer from the Paint tool — right-click it and choose Save to Library. Set a name, type, and scope.
Resource Importer
⚠️
Supported formats: PNG, JPEG, and WebP images. For best quality on textures and alphas, use PNG to preserve transparency and avoid compression artefacts.
Step 04
Storage Scopes
Every resource in the Assets Library is stored at one of three scopes. Choosing the right scope keeps your library clean and ensures resources are available exactly where and when you need them.
Scope
Lifespan
Best for
Session
Exists only while the current browser tab is open. Gone when you close or refresh.
Quick one-off tests, temporary reference images, things you won't need again.
Project
Saved to the current document. Available whenever you open that project, on any device.
Textures, alphas, and baked maps that belong to a specific asset or project.
Library
Persists globally across all projects and all future sessions.
Reusable brush alphas, tileable materials, curvature and AO bakes you plan to reuse across multiple assets.
💡
Build a brush library: Any grayscale alpha you paint in the Paint tool and save to Library scope becomes a permanent custom brush tip available in every future project. Over time this becomes one of the fastest ways to develop a distinct visual style.
Step 05
Using Assets in the Texture Tool
Every slot in the Texture tool — brush tips, channel maps, material fills, layer masks — accepts assets from the library via drag and drop. No copy-paste, no file dialogs.
In the Assets Library panel, locate the resource you want to use.
Drag it from the library thumbnail directly onto the target slot in the right-hand panel. Target slots show a highlight when a compatible asset hovers over them.
Release to apply. The slot updates immediately and the asset is live in your material or brush.
To remove an asset from a slot, click the × icon that appears on hover over the slot.
Drag Targets — Where Assets Can Go
💡
Open in Paint: Right-click any texture asset in the library and choose Open In Paint to edit it in the 2D Paint tool. Any changes you save will update the asset in the library automatically.
You can also drag assets from the library directly onto the 3D viewport. Dropping a material asset onto the mesh surface applies it to the nearest UV island instantly.
Step 06
Managing Assets
Right-clicking any asset thumbnail in the library opens a context menu with actions for that resource.
Asset Context Menu
color_base.png
🖼️ Open In Paint
📤 Export as…
💾 Save to Library
🗑️ Delete
Action
What it does
Open In Paint
Opens the asset in the Paint tool 2D canvas for editing. Useful for refining a baked map or adjusting an alpha shape.
Export as…
Downloads the asset as a PNG, JPEG, or WebP file to your computer. Use this to extract baked maps for direct engine import.
Save to Library
Promotes a Session- or Project-scoped resource up to Library scope so it persists across all future projects.
Delete
Removes the asset from its current scope. If it's in a channel or mask slot, that slot will be cleared. This cannot be undone.
⚠️
Deleting all imported resources is available via the Delete all imported resources option in the panel header menu. This clears every imported asset across all scopes and cannot be undone — use with care.
🎉
You're set! The Assets Library is the connective tissue of every Trumble workflow. As you build up a personal collection of alphas, materials, and baked maps, your texturing speed will increase dramatically — resources you create once become tools you reuse forever.