← GUIDED PROJECTS
8-12 hours · Intermediate

Build an Artist-Facing Python Tool

IntermediateNeeds: Basic Python
Sign in to tick off milestones and publish this to your showcase.Sign in

The brief

Write a tool that solves one real pipeline annoyance — asset naming validation, batch export, material auditing, or scene cleanup. It must have a dry-run mode, never destroy data silently, and produce a readable report.

Deliverable: A validation or batch tool with a small UI, a dry-run mode, logging and a written rollout plan.

Starter assets

Pick a task you have personally done by hand more than five times. That is your tool. Write the report format before the logic.

Performance budget

  • Runs over 100 assets in under 30 seconds.
  • Dry-run mode is the default.
  • Every destructive action is logged with the affected asset path.

Engine instructions

Editor Utility Widget plus Python via the `unreal` module; use asset registry queries rather than loading every asset.

Milestones

MILESTONE 01

Write the report first

Define exactly what the tool will tell the artist: per-asset status, the rule that failed, and the suggested fix. Build this as plain text output before any UI.

CHECKPOINT The tool prints a useful report while doing nothing else.
MILESTONE 02

Implement rules as data

Express each validation rule as data (name, description, check function, severity) rather than hard-coded ifs, so rules can be added without touching the engine of the tool.

CHECKPOINT Adding a new rule requires no changes to the runner.
MILESTONE 03

Dry run and apply

Add an apply mode that performs fixes, with dry run as the default. Log every change with the asset path and the before/after value.

CHECKPOINT Running without arguments changes nothing; apply mode produces a complete change log.
MILESTONE 04

Minimal UI

Add a small UI: rule checkboxes, a run button, a results list, and an apply button that is disabled until a dry run has been done.

CHECKPOINT An artist can run the tool without reading the code or a console.
MILESTONE 05

Failure handling

Handle locked files, missing dependencies and unexpected asset types without aborting the whole batch. Report failures as results, not as a traceback.

CHECKPOINT A deliberately broken asset in the batch does not stop the run.
MILESTONE 06

Rollout plan

Write how the tool gets to the team: where it lives, how it is versioned, who owns it, and how someone reports a bug. Then get one artist to use it.

CHECKPOINT One artist used the tool on real assets and gave feedback that is written down.

Troubleshooting

The tool is slow over large asset sets.
You are loading assets to inspect metadata. Query the asset registry / database instead of opening files.
Artists do not trust it.
Dry run must be the default and the report must name the rule and the fix. Trust comes from predictability, not features.
One bad asset kills the whole run.
Wrap per-asset work in error handling and record failures as results.
Nobody uses it after week one.
It probably solved your annoyance, not theirs. Watch someone work and pick the thing they actually repeat.

Assessment rubric

Portfolio write-up template

One-line summary
What it is and why it exists, in a sentence a recruiter understands.
Your role and scope
What you personally built, and what was given to you.
Engine / software and version
e.g. Unreal 5.4, Houdini 20.5, Unity 6 URP.
Technical breakdown
The approach, the key maths or nodes, and one alternative you rejected.
Performance metrics
Instruction count, samplers, GPU ms, particle counts, cook time — with how you measured.
Reflection
What you would do differently, and the trade-off you are least happy with.
Repository or breakdown link
Optional link to code, a post, or a video.

Courses behind this project