../

Buildings & scenes

Architecture and environments in Blender 5.x (5.2 LTS): blockouts at real-world scale, modular kits on a grid, instancing and the Asset Browser, openings and bevels, Geometry Nodes for scattering and procedural buildings, terrain and sky, composition and interiors, performance, and what a game level needs that a render doesn't. Mesh and material basics are in Modeling and Materials & UVs; light and camera settings in Lighting & rendering; concepts in Core concepts. Destinations: Three.js, Godot, GTA V.

Blockout & real-world scale

A blockout (graybox) is the level or building made of untextured primitives: cubes for rooms, cylinders for columns, planes for floors. Walk it, frame it with the camera, fix the proportions, and only then model detail. Work in meters (Scene Properties › Units: Metric, Unit Scale 1.0): glTF, three.js and Godot all use 1 unit = 1 m, and Rigify and Mixamo characters assume it.

ElementTypical sizeBasis
Person1.7–1.8 m tall, eyes at ~1.6 muse a 1.8 m capsule or mannequin as the scale reference
Interior door2.0–2.1 m × 0.8–0.9 mUS standard 80 in (2.03 m); accessible clear width ≥ 32 in (815 mm, ADA)
Ceiling (home)2.4–2.7 mIRC R305.1 minimum 7 ft (2.13 m) for habitable rooms
Floor-to-floor~3 m homes, 3.5–4.5 m offices and shopsceiling + 0.3–0.5 m slab and services
Stair riser15–18 cmIRC R311.7.5.1 maximum 7¾ in (196 mm); commercial codes are lower (~7 in, 178 mm)
Stair tread (going)25–30 cmIRC minimum 10 in (254 mm)
Stair width≥ 0.9 mIRC 36 in
Handrail0.86–0.97 m above the tread noseIRC 34–38 in
Guard (railing) at drops≥ 0.9 m homes, ≥ 1.07 m public36 in residential, 42 in commercial (typical US codes)
Window sill / headsill 0.8–1.0 m, head ~2.1 m (lines up with doors)typical
Wall thickness0.1–0.15 m interior, 0.2–0.35 m exteriortypical
Countertop / table / chair seat0.9 m / 0.75 m / 0.45 mtypical
Road lane / sidewalk curb3–3.7 m / ~15 cmtypical

Values are typical, not a code check: local codes vary. Games usually exaggerate interiors for a third-person camera (doors 1.2–1.5 m wide and 2.4 m tall, corridors ≥ 2 m, ceilings 3–4 m); decide your character's capsule first and scale the kit around it.

Blockout habitWhy
Keep object scale at 1 (Ctrl A › Scale)modifiers, bevels, UVs, physics and exports all assume it
Measure with the Measure tool, or Edit Mode › Overlays › Edge Lengthnumbers beat eyeballing
One collection per floor or zonetoggle visibility, export per zone
Camera at eye height (1.6 m) with a 24–35 mm lensreads the space the way a player sees it
Name pieces now (Wall_4m, Door_2m)the names become glTF node names and Godot suffixes later

Modular kits on a grid

A modular kit is a small set of pieces that tile on a fixed grid: walls, corners, floors, doors, windows, stairs. Build a hundred rooms from ten meshes, and let the engine instance them.

Wall_4m Door_2m Wall_2m Floor_4x4 Floor_4x4 Wall_4m, rotated 90° corner +X +Y top view 1 cell = 1 m pivot on a grid corner walls run +X from pivot; rotate in 90° steps only pieces are whole multiples of the grid, so any piece snaps next to any other a corner piece covers the overlap where two walls meet
Pieces are multiples of the grid, pivots sit on grid corners, walls run along +X
RuleSetting
Pick a module1 m base grid; pieces of 1, 2 or 4 m (walls 4 m wide × 3 m tall is a common default)
Pivot at a cornerorigin at the piece's bottom-left grid corner: Shift S › Cursor to Selected on that vertex, then Object › Set Origin › Origin to 3D Cursor
Consistent directionevery wall runs along +X from its pivot, faces −Y (outside); rotate in 90° steps only
Snap placementSnap (Shift Tab) with Snap Target Grid, or Increment with Absolute Increment Snap; hold Ctrl to snap temporarily
Grid sizeViewport Overlays › Guides › Scale and Subdivisions
Rotate in 90° stepsSnapping › Affect: Rotate, Rotation Increment 90° (or R Z 90)
Wall thicknessdecide once whether walls sit inside the grid line (as drawn) or centered on it; a corner piece covers the overlap where two walls meet
Closed, clean piecesno hidden faces where pieces touch; merge by distance, recalculate normals (Shift N)
PieceVariants worth making
Wall1, 2, 4 m; plain, window, door, half-height, damaged
Cornerinner, outer, column
Floor / ceiling2 × 2 m and 4 × 4 m tiles; stair-well hole
Stairsone floor high, same footprint as floor tiles
Trimskirting, cornice, window frame (instanced along edges)
Roofslope, ridge, gable end, flat parapet

Instances, collections & the Asset Browser

Instancing reuses one mesh many times: memory and file size stay flat, and engines can draw copies cheaply.

MethodHowExports as
Linked duplicateAlt D (Shift D makes a full copy)glTF nodes sharing one mesh; with GPU Instances on, EXT_mesh_gpu_instancing (three.js InstancedMesh) when they share a parent
Collection instanceput a multi-object piece in a collection, then Add › Collection InstanceglTF: nodes for the collection's contents under the instancer (Full Collection Hierarchy keeps the collections as empties)
Array modifierrepeats along a line, circle or curve (5.x version is node-based; the classic one is "Array (Legacy)")one merged mesh after Apply Modifiers; enable its Realize Instances
Geometry Nodes instancesInstance on Pointsneeds Realize Instances or the experimental exporter option (see What survives export)
Make realObject › Apply › Make Instances Real, or Visual Geometry to Objects (keeps shared meshes)ordinary objects

The Asset Browser (an editor, or the Asset Shelf in some modes) turns a kit into a drag-and-drop palette:

  1. In the kit's .blend, right-click each piece in the Outliner (or Object › Asset) › Mark as Asset; a preview is generated. Mark collections to keep multi-object pieces together.
  2. Organize assets into catalogs (folders in the Asset Browser sidebar).
  3. Save the file inside a folder registered in Preferences › File Paths › Asset Libraries.
  4. In any scene, open the Asset Browser, pick the library, drag pieces in. Import method: Link (read-only, updates when the kit changes), Append (a local copy), or Append (Reuse Data) (append once, reuse the mesh for later drags); 5.x adds Pack.

Blender 5.x also downloads assets on demand from remote asset libraries, including the online part of the bundled Essentials library.

Openings, bevels & surface detail

TaskToolSettings
Cut a window or doorBoolean modifier, Difference, with a cutter object (or a Collection of cutters)Solver: Exact (robust, slow), Manifold (fast, needs closed meshes), Float (fast, fragile; was "Fast" before 5.0)
Hide cuttersObject Properties › Viewport Display › Display As: Wire; disable render and export visibilitykeep them in a Cutters collection
A row of windowsArray modifier on the cutter (the Boolean uses the evaluated cutter)Count, Offset Method Relative or Offset
Rounded real-world edgesBevel modifierLimit Method: Angle (30°), Amount 1–2 cm, Segments 2–3, Harden Normals
Flat faces that shade cleanlyWeighted Normal modifier after BevelWeighting Mode Face Area, Keep Sharp on
Smooth by angleObject › Shade Auto Smooth (adds the Smooth by Angle modifier from the Essentials library)Angle 30°; Shade Flat / Smooth removes it
Panel lines, insetsEdit Mode: I inset, E extrude, Ctrl R loop cutkeep n-gons on flat walls only

Big surfaces get their look from textures, not polygons:

TechniqueWhatExport note
Tiling texturea seamless material repeated across walls and floors (brick, plaster, tiles)needs UVs scaled to real size: keep one texel density (pixels per meter) across the kit
Trim sheetone texture of horizontal strips (moldings, panels, pipes, edges); map long thin faces onto a stripthe standard way to detail modular kits with one material
Decalssmall alpha-blended planes with grime, signs, cracksone draw call each; batch them onto an atlas
Box projectionImage Texture node, Projection: Box, BlendBlender-only: glTF needs real UVs (UV › Cube Projection)
Vertex color maskspaint dirt or moss blendsglTF exports vertex colors when the material uses them

UV workflows and texel density are in Materials & UVs.

Geometry Nodes basics

Geometry Nodes (GN) is a node-based modifier: a node tree reads the object's geometry, generates or changes it, and outputs new geometry every time something changes. Add it with Add Modifier › Generate › Geometry Nodes › New, and edit it in the Geometry Nodes workspace.

IdeaMeaning
Geometrywhat flows along the thick links: mesh, curves, point cloud, instances, volume
Attributeper-element data stored on the geometry: position, normal, UV maps, your own named values
Fielda per-element function evaluated inside a node (diamond sockets, dashed links); e.g. Position.z > 2 is a boolean field that selects high points
Instancea lightweight reference to geometry (an object, a collection child, a mesh) placed with a transform
Realizeturn instances into real, editable geometry: more memory, but needed to edit or export them as one mesh
Group Input / Outputthe modifier's parameters (shown in the modifier panel) and result
NodeDoes
Distribute Points on Facesscatter points on a mesh; Random or Poisson Disk (minimum distance); density per m²; outputs Normal and Rotation
Instance on Pointsplace an instance on each point; Pick Instance chooses per point from a Collection Info
Collection Info / Object Infobring a collection's children or another object in (Separate Children, Reset Children)
Realize Instancesinstances → real geometry
Random Valueper-element random float, integer, vector or boolean (seeded)
Mesh Line, Grid, Cube, Cylinderprimitives, often used as point generators
Transform Geometry, Set Positionmove, rotate, scale
Join Geometrycombine several geometry streams
Rotate / Scale / Translate Instancesper-instance variation
Align Rotation to Vectororient instances to a normal or tangent
Named Attribute, Store Named Attributeread a painted vertex group or write your own attribute
Merge by Distance, Set Materialclean up, assign materials
Viewer (Shift Ctrl click a node)preview any node's output in the viewport and Spreadsheet

The bundled Essentials node assets appear in the Add menu next to the regular nodes and in Add Modifier:

AssetUse
Scatter on Surfacea complete scatter setup: density or amount, Random or Poisson Disk, mask, collection picking, random transforms, optional Realize
Arrayline, circle, curve or transform arrays with randomization and merge
Curve to Tubepipes, cables, railings from curves
Randomize Transforms, Random Rotationjitter instances (position, rotation, scale)
Instance on Elementsinstance on faces or edges, not just points
Normal Selection, Box / Sphere Selectionfields that select by facing or region (e.g. no trees on steep slopes)
Displace Geometry, Smooth Geometryterrain-style deformation
Smooth by Anglethe auto-smooth modifier
Hair nodes, Cloth Dynamics (Experimental)hair curves (grass works too); simulation assets

CG Cookie's crash course builds procedural models and animation from scratch; watch for fields, instancing on points and realizing instances.

ASSEMBLE: Geometry Nodes Crash Course on Procedural Modeling and Animation (opens in a new tab) (CG Cookie – Learn Blender, YouTube)

Node recipes: scatter & procedural building

Scatter trees and rocks on a terrain (or use the Scatter on Surface asset, which wraps the same idea):

#NodeSettings
1Group Inputthe terrain mesh
2Named Attribute (Float)forest: a vertex group you weight-painted where trees may grow
3Distribute Points on FacesPoisson Disk, Distance Min 3 m, Density Max 0.1; Density Factor ← node 2
4Collection InfoTrees collection; Separate Children and Reset Children on
5Random Value (Float)0.8–1.2 for scale
6Random Value (Vector)Max Z = 6.283 (2π) for yaw
7Instance on PointsPoints ← 3, Instance ← 4, Pick Instance on, Rotation ← 6, Scale ← 5
8Join Geometrynode 1 (the terrain) + node 7
9Group Output

Procedural facade (floors × window bays), for a building you can resize by typing numbers:

#NodeSettings
1Group Inputnew inputs: Floors (int), Bays (int), Floor Height (3 m), Bay Width (2 m)
2Mesh LineCount ← Floors, Offset (0, 0, Floor Height): one point per floor
3Mesh LineCount ← Bays, Offset (Bay Width, 0, 0): one point per bay
4Instance on PointsPoints ← 2, Instance ← 3: the grid of bay positions (nested instances)
5Realize Instancesflatten to a Bays × Floors point grid
6Collection InfoFacade collection (wall bay, window bay, door bay; pivots at bottom-left)
7Random Value (Int)Min 0, Max 1: wall or window per bay; for ground-floor doors, a Compare (Position Z less than 0.5) into a Switch that outputs 2
8Instance on PointsPoints ← 5, Instance ← 6, Pick Instance on, Instance Index ← 7
9Transform Geometry ×4 + Join Geometryfour facades rotated 0°, 90°, 180°, 270° around the footprint; add a roof slab on top
10Realize Instancesonly for export, or when later nodes must edit the result

Expose Floors and Bays on Group Input and they show up in the modifier panel. From Python in 5.2 the inputs are mod.properties.inputs.<identifier>.value (see bpy).

What survives export

In BlenderglTF (three.js, Godot)What to do
Modifiers (Bevel, Array, Boolean, Weighted Normal)only the result, with Apply Modifiers on (off by default)or apply them yourself; Apply Modifiers drops shape keys
Geometry Nodes real geometrythe evaluated mesh, with Apply Modifiersfine
Geometry Nodes instancesdropped: Apply Modifiers exports only real geometry. Geometry Nodes Instances (Experimental) exports them as nodes sharing one meshRealize Instances as the last node, or Object › Apply › Visual Geometry to Mesh / to Objects
Linked duplicatesnodes sharing one mesh; GPU instancing with the GPU Instances optionbest for repeated kit pieces
Collection instancesexported as nodesfine
Boolean cuttersexported like any visible objecthide or exclude them (Include › Visible / Selected Objects)
Box-projected / procedural texturesnot exportedUV unwrap and bake to image textures
Custom normals (Weighted Normal, Harden Normals, Smooth by Angle)exported with Normals on, but only with Apply Modifiers on (they come from modifiers)keep both on, or apply the modifiers
Curves, textnot exportedObject › Convert › Mesh
n-gons and quadstriangulated on exportfine for flat walls

Godot imports .blend files by running Blender's glTF exporter, so the same rules apply there.

Terrain, vegetation & sky

TaskHow
Terrain from a heightmapPlane, scale to size, Subdivision Surface (Simple) or Edit › Subdivide, Displace modifier with an image or Clouds texture, Strength = height range
Hand-shaped hillsSculpt Mode (Draw, Clay Strips, Smooth, Grab) on a dense plane, or dynamic topology / Remesh
Procedural landscapesA.N.T. Landscape (opens in a new tab) extension (Get Extensions)
Paths and riverbedsa Curve with a Shrinkwrap to the terrain, or sculpt; drive a GN mask with it
Vegetationscatter recipe above, or Scatter on Surface; grass as hair curves or instanced cards; keep a few tree variants
Watera plane with Principled BSDF: Transmission Weight 1, Roughness 0.05, a Noise-driven normal map; engines replace it with their own water shader
HDRI skyWorld › Surface: Environment Texture with an HDRI (Poly Haven (opens in a new tab), CC0); lights and reflects the scene
Procedural skyWorld › Sky Texture, type Multiple Scattering (most accurate) or Single Scattering; very bright by default: lower Color Management › Exposure
Fog and depthVolume Scatter in the World or a cube (render only); engines use their own fog

Web and game engines usually rebuild sky, water and fog natively; export the terrain mesh and props, and bake the terrain's look to textures.

Composition & interiors

CameraGuidance
Focal length24–35 mm (36 mm sensor) for architecture; 50 mm for details; ultra-wide below 20 mm distorts
Vertical lineskeep the camera level and use Camera › Lens › Shift Y to frame the top instead of tilting
FramingCamera › Viewport Display › Composition Guides (thirds, golden ratio); one clear focal point
Eye height1.6 m for "you are here"; low for grandeur; high for layouts
Depthforeground frame (door, foliage), middle subject, background; Depth of Field for close shots
PlacementN sidebar › View › Lock Camera to View, then navigate; Ctrl Alt Numpad 0 aligns the camera to the view
Lighting moodSetup
Daylight exteriorSun lamp + Sky Texture or HDRI; warm sun, cool sky
Golden hourlow sun, orange, long shadows; HDRI rotated to match
OvercastHDRI only, no sun: soft shadows
Nightdim blue world, warm point / area lights in windows, emissive signs

Interiors get most light from bounces through windows:

RendererDo this
CyclesArea lights in window openings with Portal on (they guide sampling of the sky; less noise indoors, useless outdoors); raise Light Paths › Diffuse bounces; denoise
EEVEEa Light Probe Volume fitted to each room, baked, for indirect light; Sphere probes for reflections; raytracing in Render Properties
Gamesbake lightmaps (a second UV map without overlaps) or rely on the engine's GI; see Godot export

Details on engines, samples and color management: Lighting & rendering.

Performance

CheckHow
Scene sizeViewport Overlays › Statistics (objects, vertices, faces, triangles; depends on selection)
Repeated propslinked duplicates / instances instead of copies
Far or background objectsDecimate modifier: Collapse (ratio), Un-Subdivide, Planar (merges flat faces; great for architecture)
Heavy viewportsRender Properties › Simplify (cap subdivision levels); hide collections you're not editing
Levels of detail (LOD)Godot generates mesh LODs on import; three.js LOD objects need LOD meshes you export (Tree_LOD0, Tree_LOD1); GTA V uses explicit LOD models
Draw callseach mesh × material is at least one; merge static props that share a material (Ctrl J), but keep large levels in chunks so the engine can cull them
Texturesshared atlases and trim sheets; ≤ 2K for the web

Web budgets that hold on phones: tens of thousands of triangles per hero asset, a few hundred draw calls per scene (see Three.js performance).

Game levels vs render scenes

ConcernRender sceneGame level
Geometryanything the camera sees; booleans, n-gons, subdivisionclean, closed pieces; triangle budget; no hidden faces
Collisionnonesimple collision meshes: Godot name suffixes (-col, -colonly, -convcolonly); see Godot export
Materialscomplex node treesPrincipled BSDF with image textures only; few materials, atlases
LightingCycles or EEVEE, any lightsbaked lightmaps (UV2) or engine GI; engine lights
Scale & pivotsloosestrict: 1 unit = 1 m, pivots on the grid, applied transforms
Instancingoptionalessential: kit pieces as linked duplicates or placed in the engine
Interiorsa room behind the cameraGTA V needs an MLO (interior archetype, .ytyp) with portals and rooms: see GTA V export
Exportrender passesglTF / .blend per zone or per kit piece

A common split: model the kit in Blender, export each piece once, and assemble the level in the engine (Godot scenes, GTA via CodeWalker), keeping Blender for hero set pieces.

AI & asset libraries

SourceGood forNotes
Higgsfield Scene Buildera blockout from a prompt as editable geometry in a .blend (Blender plugin + MCP server)treat it as a starting layout; replace pieces with your kit; see AI generation
Image-to-3D (Higgsfield, Meshy, Tripo…)single props: statues, furniture, rubbledense, triangulated meshes: decimate or retopologize, re-UV; check each vendor's license
MCP servers + Claude / GPT (the community mcp-for-blender, formerly blender-mcp; Blender Lab's official MCP server for 5.1+)an LLM driving Blender: place kit pieces, write GN setups; the community server also fetches Poly Haven and Sketchfab assetsthey run arbitrary Python in Blender; review what they do; see LLMs driving Blender
Poly Haven (opens in a new tab)HDRIs, PBR textures, modelsCC0 (no attribution needed)
Sketchfab (opens in a new tab)downloadable modelslicense per model (often CC BY: credit the author); check before shipping
Essentials / remote asset librariesnode assets, materialsbundled or downloaded on demand in the Asset Browser

Recipes

Modular wall kit

Use when a game or web scene needs many rooms from a few meshes.

  1. Scene units metric, grid Scale 1 m; snap to Grid.
  2. Model Wall_4m: 4 × 0.2 × 3 m, pivot at the outer bottom-left corner, running along +X.
  3. Duplicate into Wall_4m_Window (Boolean with an arrayed cutter, then apply) and Wall_4m_Door (a 1.2 × 2.4 m opening for a third-person camera).
  4. Add Corner_Out, Corner_In, Floor_4x4; bevel and Weighted Normal each; UV to one trim sheet.
  5. Mark all as assets in a Kit_Town catalog; save into a registered asset library.
  6. Build rooms by dragging pieces in, Link or Alt D so meshes are shared; export pieces individually for the engine, or the assembled level with GPU Instances on for three.js.

Scatter trees with Geometry Nodes

Use to dress a terrain with trees and rocks without placing them by hand.

  1. Put 3–5 tree variants (each at the origin, applied scale) in a Trees collection; exclude it from the view layer.
  2. On the terrain, weight-paint a vertex group forest.
  3. Add Modifier › Geometry Nodes › New; build the scatter table above (or Add › Scatter on Surface, Density Method Density, Instance Type Collection).
  4. Tune Distance Min and density; change Seed until it looks natural.
  5. For export: add Realize Instances last (big meshes), or Visual Geometry to Objects to keep shared tree meshes and export with GPU Instances.

Resizable building with Geometry Nodes

Use for city backgrounds where you need many buildings of different sizes.

  1. Model three facade bays (2 × 3 m): wall, window, door, pivot bottom-left; put them in Facade.
  2. On an empty mesh object add a GN modifier and build the procedural facade table above.
  3. Expose Floors, Bays, Seed; duplicate the object and change the numbers per building.
  4. Before export: Object › Apply › Visual Geometry to Mesh, then Decimate (Planar) for far buildings.

Window openings along a wall

Use for a facade with evenly spaced windows that stay editable.

  1. Add a cube cutter 1.2 × 0.5 × 1.4 m at the first window position, Display As Wire.
  2. Array modifier on the cutter: Count 4, Offset 2 m along X.
  3. Boolean on the wall: Difference, Object = cutter, Solver Exact.
  4. Add Bevel (Angle, 1 cm) then Weighted Normal (Keep Sharp) on the wall.
  5. Insert window frames as instanced trim pieces; hide the cutter from render.

Blockout to a playable Godot level

Use to test a level's layout in-engine before modeling detail.

  1. Blockout with cubes at real scale; walkable floors on whole meters; stairs with 0.18 m risers.
  2. Duplicate collision shapes and name them Floor-colonly, Wall_A-colonly (see Godot export).
  3. Apply transforms (Ctrl A › All Transforms); one collection per zone.
  4. Save the .blend into the Godot project (Godot re-imports on save) or export glTF per zone.
  5. Walk it with a CharacterBody3D; fix scale issues in Blender, not in the engine.

Interior render quick setup

Use for a clean interior still in Cycles.

  1. World: an HDRI at strength 1 for the view outside the windows.
  2. Area light in every window opening, sized to it, Portal on.
  3. Camera 24 mm at 1.4–1.6 m, level, Shift Y for framing; Composition Guides on.
  4. Light Paths: raise Diffuse bounces; Denoise on; AgX view transform.
  5. Add one warm practical light (lamp) as the focal point.

References