3d Essentials logo

3d Essentials

Community
jame581
3d-essentials

Use when working with 3D-specific systems — materials, lighting, shadows, environment, global illumination, fog, LOD, occlusion culling, and decals in Godot 4.3+

Overview

Publisherjame581
RepositoryGodotPrompter
Skill name3d-essentials
Stars
808
Forks
47
Bundled files
9
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 9 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by jame581 on GitHub. Read the source before you install it.

Installation

Install the 3d Essentials AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/jame581/GodotPrompter/tree/master/skills/3d-essentials
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/jame581/GodotPrompter.git /tmp/GodotPrompter
mkdir -p .claude/skills
cp -r /tmp/GodotPrompter/skills/3d-essentials .claude/skills/3d-essentials
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable 3d Essentials in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads 3d Essentials on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so 3d Essentials is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

3D Essentials in Godot 4.3+

All examples target Godot 4.3+ with no deprecated APIs. GDScript is shown first, then C#.

Related skills: player-controller for CharacterBody3D movement, physics-system for 3D collision shapes and raycasting, camera-system for Camera3D follow and transitions, shader-basics for spatial shaders and post-processing, godot-optimization for 3D performance tuning, animation-system for AnimationTree and 3D animation blending.


1. 3D Coordinate System & Core Nodes

Coordinate System

Godot uses a right-handed coordinate system with metric units (1 unit = 1 meter):

AxisDirectionColor
XRightRed
YUpGreen
ZOut of screen (+Z toward viewer)Blue

Cameras and lights point along -Z by default. When a character "faces forward," they look along -Z.

Essential 3D Nodes

NodePurpose
Node3DBase transform node — position, rotation, scale
MeshInstance3DDisplays a mesh with a material
Camera3DRequired to render 3D — perspective or orthogonal
DirectionalLight3DSun/moon — parallel rays, cheapest light
OmniLight3DPoint light — emits in all directions
SpotLight3DCone light — flashlights, spotlights
WorldEnvironmentSky, fog, tonemap, post-processing
DecalProjected texture onto surfaces
GPUParticles3DGPU-driven particle effects
CSGBox3D etc.Constructive Solid Geometry — prototyping
GridMap3D tile-based level building

Godot 4.7+: GridMap exposes its internal octants for spatial queries (cell_octant_size, get_used_octants(), get_octants_in_bounds() and friends) so you can scope work to a region instead of walking every cell. CSGShape3D gains autosmooth / smoothing_angle for automatic face smoothing. Full method table and semantics: references/godot-4.7-additions.md

Minimal 3D Scene

World (Node3D)
├── Camera3D
├── DirectionalLight3D
├── WorldEnvironment
├── MeshInstance3D (floor)
└── MeshInstance3D (player model)

2. Materials

StandardMaterial3D vs ShaderMaterial

MaterialUse ForNotes
StandardMaterial3DMost 3D objects — PBR workflowNo code; Inspector-driven
ORMMaterial3DSame as Standard but with packed ORM textureOcclusion+Roughness+Metallic in one texture
ShaderMaterialCustom effects — toon, water, dissolveRequires spatial shader code

Key StandardMaterial3D Properties

The PBR core: albedo_color / albedo_texture (base color), metallic (0 dielectric → 1 metal), roughness (0 mirror → 1 matte), normal_map (surface detail), ao_texture (ambient occlusion). Add emission + emission_energy_multiplier for self-illumination, heightmap_texture for parallax, rim / clearcoat for material flair.

Transparency Modes

Prefer Alpha Scissor (fast, shadowed cutouts) or Alpha Hash (dithered — hair) over plain Alpha (slow, no shadows); Depth Pre-Pass suits mostly-opaque meshes with transparent edges.

See references/materials-and-lighting-recipes.md for the comparison table.

Setting Materials from Code & Material Instancing

Create a StandardMaterial3D at runtime, assign to mesh.material_override, and drive emissive flashes via Tween. Use .duplicate() to make per-instance copies so changing one mesh's material doesn't affect others.

See references/materials-and-lighting-recipes.md for the full GDScript and C# recipes (basic material setup, emissive flash, per-instance duplicate, dynamic OmniLight3D explosion).


3. Lighting

Light Types Comparison

LightShapeShadowsCostMax Visible
DirectionalLight3DParallel raysPSSMCheapest8 (Forward+)
OmniLight3DSphereCube/Dual ParaboloidMedium512 clustered*
SpotLight3DConeSingle textureCheap512 clustered*
AreaLight3D (4.7+)RectanglePCSS softMost expensive—

*Forward+ shares 512 clustered element slots among omni lights, spot lights, decals, and reflection probes.

Light Properties

Key knobs: light_color, light_energy (HDR — values >1 are valid), shadow_enabled (big perf hit), directional_shadow_mode, directional_shadow_max_distance (lower = sharper shadows).

See references/materials-and-lighting-recipes.md for the properties table and the GDScript + C# sun setup snippet.

AreaLight3D (Godot 4.7+)

AreaLight3D emits light from a rectangle along the node's -Z — neon tubes, screens, softbox panels — with PCSS soft shadows driven by light_size. Key properties: area_size = Vector2(1, 1) (meters), area_range = 5.0, area_attenuation = 1.0 (2.0 = physically accurate inverse square), area_normalize_energy = true (resizing keeps total output stable), optional area_texture for textured emission (Forward+/Mobile only). Mobile support is limited and Compatibility cannot cast area-light shadows; in Forward+, a single visible area light adds clustered-lighting cost to all rendered objects — reserve for cinematics or high-end targets.

See references/materials-and-lighting-recipes.md for the full property table and the GDScript + C# setup recipe.

Dynamic Point Light

Spawn an OmniLight3D at runtime, drive its energy with a tween, queue-free on completion. Common for explosions, muzzle flashes, magic effects.

See references/materials-and-lighting-recipes.md for the full GDScript and C# recipe.

Shadow Configuration & Bake Modes

Prefer shadow_normal_bias over shadow_bias against acne; keep directional_shadow_max_distance at the minimum needed (50–100 m typical). Bake modes: Disabled (fully real-time, default), Static (fully baked, no runtime cost), Dynamic (indirect baked, direct real-time).

See references/materials-and-lighting-recipes.md for the shadow-tuning table and the bake-modes table.


4. Environment & Post-Processing

Configure global rendering — sky background, tonemapping, glow, SSR, SSAO/SSIL/SDFGI, depth-of-field — through a WorldEnvironment node holding an Environment resource. Pick a tonemap (Linear, Reinhard, Filmic, ACES, or AgX) on the Environment resource. Forward+ enables SSAO, SSIL, SSR, and SDFGI; mobile/compatibility renderers omit these.

See references/environment-and-post.md for the full setup recipes (sky options, tonemap modes, all post-processing effects, the 4.6+ glow-before-tonemapping pipeline change, AgX tonemap_white / tonemap_contrast controls, and the 4.6+ SSR quality upgrade).

Godot 4.7+: display/window/hdr/request_hdr_output (default false, promoted to a basic project setting) requests HDR display output for the main window and editor where supported, auto-switching between HDR and SDR as screens or system settings change; it forces Viewport.use_hdr_2d on for the main viewport (other SubViewports must enable it themselves). Read only at startup — toggle Window.hdr_output_requested at runtime.

⚠️ Changed in Godot 4.7: The rendering/reflections/sky_reflections/roughness_layers default changed from 7 to 8, altering sky-reflection roughness mip distribution for projects that left it at the default. Set it back to 7 to keep the 4.6 output. See the 4.7 migration guide.

5. Global Illumination

Five GI options trade quality for cost: none (ambient only) → ReflectionProbe (localized) → LightmapGI (best quality, baked) → VoxelGI (small/medium dynamic) → SDFGI (large open-world). VoxelGI/SDFGI/LightmapGI require Forward+. The 4.5+ subsections below (Specular Occlusion, Bent Normal Maps) stay inline because they apply across GI methods.

See references/global-illumination.md for the methods comparison table, ReflectionProbe scene + code recipe, LightmapGI bake workflow, and SDFGI configuration.

Specular Occlusion from Ambient Light (Godot 4.5+)

Godot 4.5+ automatically computes specular occlusion from the ambient light probe when LightmapGI, VoxelGI, or SDFGI is active. Prevents unrealistically bright speculars in areas that receive little indirect light (under eaves, inside crevices, in corners). No API change — re-bake after upgrading to see the improvement on metallic / low-roughness surfaces. ReflectionProbe alone does not provide specular occlusion.

Bent Normal Maps (Godot 4.5+)

Bent normal maps encode the mean unoccluded direction from each texel — the average direction toward open sky across the hemisphere. When assigned to the Bent Normal slot on StandardMaterial3D, Godot uses this information to improve indirect lighting directionality and specular occlusion accuracy. The result is more realistic ambient lighting on complex surfaces like cloth, carved stone, or organic shapes.

Inspector setup: In StandardMaterial3D, enable Bent Normal → assign your tangent-space bent normal texture (baked from Marmoset, Substance, or xNormal).

Most visible on: materials that combine low roughness or high metallic values with baked GI (LightmapGI / VoxelGI / SDFGI). On fully rough dielectric surfaces the benefit is subtler. Use on hero assets; skip on background geometry.

See references/materials-and-lighting-recipes.md for the runtime-assignment GDScript + C# code path (the Inspector setup above is the typical case).


6. Fog

Three layers: depth/height fog set on WorldEnvironment.environment (cheap, all renderers), volumetric fog (Forward+ only — godrays through depth), and FogVolume nodes for localized fog effects (interior rooms, pits, atmospheric volumes).

See references/fog-recipes.md for the full GDScript and C# recipes — depth/height fog setup, volumetric fog parameters and performance notes, and FogVolume placement.

⚠️ Changed in Godot 4.7: Volumetric fog is now blended using transmittance instead of opacity, so existing volumetric fog can look different after upgrading. Enable the project setting rendering/environment/fog/use_legacy_blending (default false) to restore the previous behavior. See GH-119414.

7. Decals

Decal nodes project a texture onto whatever surfaces fall within their bounding box — bullet holes, blood splatter, ground details, signage. All renderers support decals; performance scales with overdraw and decal count.

See references/decals.md for the scene setup, runtime spawning recipe (GDScript + C#), and the per-renderer decal limits.


8. Optimization — LOD, Culling, MultiMesh

Four tools: automatic mesh LOD (set on import or per MeshInstance3D), manual VisibilityRange for staged swaps, occlusion culling via OccluderInstance3D, and MultiMeshInstance3D for thousands of identical meshes in one draw call.

See references/lod-and-culling.md for setup recipes for each tool plus the MultiMesh runtime population example.

9. Renderer Comparison

Pick the renderer before you build the look: Forward+ (desktop default) is the only one with SDFGI and volumetric fog, Mobile trades those for performance on tile-based GPUs, and Compatibility (GLES3-class) drops most advanced lighting entirely. Advice that assumes SDFGI silently fails on the other two.

Full feature-by-renderer table and selection guidance: references/renderer-comparison.md


10. Common Pitfalls

Quick symptom → cause → fix table covering black scenes, dark objects without ambient light, shadow acne and peter-panning, popping shadows, flat materials, invisible decals, transparency sorting artifacts, SDFGI light leaking, missing volumetric fog, and invisible MultiMesh instances.

See references/common-pitfalls.md for the full table.


11. Implementation Checklist

  • Scene has Camera3D, at least one light source, and WorldEnvironment
  • Environment has a sky material (procedural or HDR panorama) for ambient and reflected light
  • Tonemap mode is set (Filmic or ACES for realistic look, AgX for physically accurate)
  • DirectionalLight3D has shadows enabled with shadow_normal_bias tuned to prevent acne
  • directional_shadow_max_distance is set to the minimum needed (50–100m typical)
  • Static geometry uses StandardMaterial3D with appropriate PBR textures (albedo, normal, roughness, metallic)
  • Transparent materials use Alpha Scissor or Alpha Hash instead of Alpha where possible (performance + shadows)
  • ReflectionProbes are placed in rooms/areas with reflective surfaces
  • GI method chosen based on project needs (LightmapGI for static, SDFGI for large dynamic, VoxelGI for small dynamic)
  • Mesh LOD is enabled on import (default for glTF/Blend — verify OBJ files)
  • Occlusion culling is enabled and baked for scenes with heavy occlusion (indoor, urban)
  • MultiMeshInstance3D is used for instanced geometry (grass, trees, props) instead of individual nodes
  • Renderer matches target platform (Forward+ desktop, Mobile mobile, Compatibility web)
  • Projects using LightmapGI/VoxelGI/SDFGI take advantage of automatic specular occlusion by upgrading to Godot 4.5+ (no API change required)
  • Hero assets with complex surface detail use bent normal maps in the StandardMaterial3D Bent Normal slot for improved indirect lighting (Godot 4.5+)
  • After upgrading to Godot 4.6, glow settings are re-tuned if appearance has changed (glow now runs before tonemapping)
  • AgX tonemap_white and tonemap_contrast are adjusted when using AgX tonemapper for precise look control (Godot 4.6+)
  • After upgrading to Godot 4.7, volumetric fog and sky reflections are re-checked (fog blending and the roughness_layers default changed)

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the 3d Essentials AI skill do?

Use when working with 3D-specific systems — materials, lighting, shadows, environment, global illumination, fog, LOD, occlusion culling, and decals in Godot 4.3+

Why use 3d Essentials on TypingMind?

Because you install it once and use it with any model. 3d Essentials is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install 3d Essentials in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/jame581/GodotPrompter/tree/master/skills/3d-essentials. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use 3d Essentials?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with 3d Essentials?

As many as you like. As long as a model supports skills, you can use 3d Essentials with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the 3d Essentials AI skill free?

Yes. It is published on GitHub by jame581 under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇