Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Set up a Godot 4.x 3D scene: Node3D transforms, Camera3D, lighting (DirectionalLight3D/OmniLight3D), WorldEnvironment for sky/ambient/tonemap/post, MeshInstance3D materials, and GridMap for tile-based 3D levels. Use when building a 3D scene in a Godot project, placing cameras/lights, configuring environment and post-processing, or working with Node3D/.tscn 3D content and GridMap.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | 22% | 0% |
| case-22 | ✓→✗ | ▼ Worse | 29% | 0% |
| case-02 | ✓→✓ | = Same ✓ | 108% | 0% |
| case-03 | ✓→✓ | = Same ✓ | 59% | 0% |
| case-04 | ✓→✓ | = Same ✓ | 90% | 0% |
Assemble a working 3D scene: transforms, camera, lights, environment/post, materials, and GridMap blockouts. Targets Godot 4.3+.
Camera3D, adding lights, settingup a WorldEnvironment (sky, ambient, tonemap, glow/SSAO), assigning materials, or building levels with GridMap.
When not to use: writing spatial shaders → godot-shaders; 3D physics bodies and raycasts → godot-physics; character animation blending → godot-animation; full FPS template → the fps-shooter genre skill.
Node3D with a Transform3D (position, rotation basis, scale).Move with global_position, rotate with rotate_y(angle) or look_at(target).
Camera3D. Mark it current (or call make_current()); set fov, near,far. Parent it to a rig/pivot for orbit or follow cameras.
DirectionalLight3D is the sun; OmniLight3D/SpotLight3D arelocal. Enable shadows per light. Without lights and ambient, surfaces render black.
WorldEnvironment with an Environment resource: background (sky/color),ambient light, tonemap, and post (glow, SSAO, fog, adjustments).
StandardMaterial3D or a ShaderMaterial) onMeshInstance3D.
GridMap, which places MeshLibrary items on a 3D grid(the 3D analog of a tilemap).
gdscriptextends Camera3D @export var target: Node3D @export var offset := Vector3(0, 4, 8) @export var smooth := 6.0 func _physics_process(delta: float) -> void: if target == null: return var desired := target.global_position + offset global_position = global_position.lerp(desired, smooth * delta) # smooth follow look_at(target.global_position, Vector3.UP) # face the target
gdscriptfunc _ready() -> void: var sun := DirectionalLight3D.new() sun.rotation_degrees = Vector3(-45, -30, 0) sun.shadow_enabled = true add_child(sun) var we := WorldEnvironment.new() var env := Environment.new() env.background_mode = Environment.BG_SKY env.sky = Sky.new() env.sky.sky_material = ProceduralSkyMaterial.new() env.ambient_light_source = Environment.AMBIENT_SOURCE_SKY env.tonemap_mode = Environment.TONE_MAPPER_FILMIC env.glow_enabled = true we.environment = env add_child(we)
gdscriptfunc tint_mesh(mesh: MeshInstance3D, color: Color) -> void: var mat := StandardMaterial3D.new() mat.albedo_color = color mat.metallic = 0.0 mat.roughness = 0.6 mat.emission_enabled = true mat.emission = color * 0.3 mesh.material_override = mat # overrides the mesh's surface materials
gdscript@onready var grid: GridMap = $GridMap # cell_size + mesh_library set in the editor func build_floor(width: int, depth: int, item_id: int) -> void: for x in width: for z in depth: # set_cell_item(Vector3i cell, int item, orientation = 0) grid.set_cell_item(Vector3i(x, 0, z), item_id)
DirectionalLight3D and/or aWorldEnvironment with ambient/sky. New scenes have neither by default.
Camera3D is current. Setcurrent = true or make_current(); only one camera renders per viewport.
position/rotation are relative to theparent; global_position/global_transform are world space. Mixing them under a rotated parent gives surprising results. look_at uses global coordinates.
scale on a Node3D distorts child collisionsand lights; prefer scaling the mesh asset or using uniform scale.
from/up in look_at. look_at(target, up) — a target equal to thenode's position, or an up parallel to the look direction, produces NaNs/flips.
MeshLibrary places nothing. Create a MeshLibrary (from scenes)and assign it; set_cell_item(cell, -1) clears a cell.
tonemap_mode and glow thresholds; raw emissive valuesbloom hard under filmic tonemapping.
Environment/post-processing options, MeshLibrary creation, and ReflectionProbe/ LightmapGI lighting, read references/scene-and-environment.md.
godot-physics — 3D bodies, areas, and raycasts.godot-shaders — spatial shaders for custom 3D surfaces.godot-animation — AnimationTree for 3D characters.camera-systems — third-person orbit / first-person look rigs, framing, and collision.performance-optimization — keep 3D scenes within frame budget (draw calls, lights, LOD).fps-shooter — composes 3D movement, input, and AI into a game.Other measured skills in the registry, with their headline benchmark lift.