TMHSDigital

TMHSDigital

@TMHSDigital

GitHub
16 Skills
272 Total Stars
September 2026 Joined

Public Skills

bake-high-to-low

by TMHSDigital

Cage-bake high-poly surface detail onto a low-poly target as a tangent-space normal map. Cycles CPU, selected-to-active, active image node, UV layer, save_render. Targets 5.2 LTS with 4.5 LTS fallback.

Automation 17 1mo ago

engine-export-presets

by TMHSDigital

Unity, Godot, and Unreal glTF/FBX export presets. glTF uses export_yup; FBX uses axis_forward/axis_up plus centimeter scale. Targets 5.2 LTS with 4.5 LTS fallback.

Automation 17 1mo ago

ai-mesh-cleanup

by TMHSDigital

Ordered cleanup for an imported generated mesh. Unit scale, transform apply, origin, normals, evaluated triangle count, decimate to budget, convex collider. Targets 5.2 LTS with 4.5 LTS fallback.

Processing 17 1mo ago

depsgraph-and-evaluated-data

by TMHSDigital

Read the actual evaluated geometry the user sees by going through the dependency graph rather than reading raw obj.data. Covers evaluated_get, to_mesh, to_mesh_clear, and the lifetime rules that prevent crashes and memory leaks. Targets Blender 5.2 LTS.

Responsive 17 1mo ago

mesh-editing-and-bmesh

by TMHSDigital

Performant mesh manipulation in Blender. When to use bpy.data vs bpy.ops vs bmesh, the canonical bm.new/free pattern, foreach_set bulk vertex injection, and depsgraph evaluation for modifier-applied geometry. Targets 5.2 LTS.

Automation 17 1mo ago

drivers-and-app-handlers

by TMHSDigital

Drive properties from expressions or other properties via the Driver API, and react to scene events via the bpy.app.handlers callbacks. Covers driver_namespace for Python functions, the new exit_pre handler in 5.1, and the must-be-fast contract for any handler.

Automation 17 1mo ago

geometry-nodes-python

by TMHSDigital

Programmatically construct Geometry Nodes trees in Blender 5.x via bpy.data.node_groups, interface socket creation, node instantiation by RNA name, link wiring, and applying as a NODES modifier. Includes Bundles for grouped sockets.

Automation 17 1mo ago

vse-python

by TMHSDigital

Build Video Sequence Editor timelines from Python. SequenceEditor.strips vs .sequences, new_effect length vs frame_end, and the 5.2 COLOR strip width/height bake from scene resolution.

Automation 17 1mo ago

bl-info-migration

by TMHSDigital

Migrate a legacy bl_info-format add-on to the Extensions Platform. Three concrete steps, before-and-after diff, dual-format pattern for backward compatibility, and answers to "is bl_info still supported?" Targets Blender 5.2 LTS.

Code Gen 17 1mo ago

custom-properties

by TMHSDigital

Define and bind Blender custom properties via bpy.props using the type annotation form, with PropertyGroup for grouping, PointerProperty for binding, and the four storage location options for Scene/Object/WindowManager/AddonPreferences. Targets 5.2 LTS.

Comments 17 1mo ago

operators

by TMHSDigital

Author Blender operators with bpy.types.Operator, bl_idname conventions, the poll/invoke/execute/modal lifecycle, REGISTER and UNDO options, and defensive context handling. Targets 5.2 LTS with 4.5 LTS compatibility.

Comments 17 1mo ago

addon-scaffolding

by TMHSDigital

Scaffold a Blender add-on against the Extensions Platform format with blender_manifest.toml, modular file layout, and the register_classes_factory pattern. Targets Blender 5.2 LTS with 4.5 LTS fallback.

Code Gen 17 1mo ago

procedural-materials-and-shaders

by TMHSDigital

Build materials and shader graphs from Python by enabling nodes, instantiating shader nodes, setting socket default values, and wiring links. Targets Blender 5.2 LTS EEVEE Next and Cycles. Avoids the (deferred to 2027) Layered Textures roadmap.

Automation 17 1mo ago

ui-panels

by TMHSDigital

Author Blender UI panels with bpy.types.Panel, declarative draw(), bl_space_type and bl_region_type, layout primitives like row/column/split, and conditional UI via .enabled. Targets 5.2 LTS.

Code Gen 17 1mo ago

headless-batch-scripting

by TMHSDigital

Run Blender headless via blender --background --python script.py for batch jobs. What changes without a UI, how to avoid UI-dependent operators, the temp_override pattern when ops must be used, and argparse after the -- separator.

Automation 17 4mo ago

slotted-actions-animation

by TMHSDigital

Animate from Python under the Slotted Actions architecture (data model shipped in Blender 4.4). Action contains Layers contain Strips contain Channelbags. Cross-version channelbag access - action_ensure_channelbag_for_slot is new in 5.0; on 4.4/4.5 LTS use strip.channelbag(slot, ensure=True) or the still-present legacy action.fcurves.

Automation 17 4mo ago