The site's UV texture generator runs in a browser. Your job: rebuild it as a native tool an artist runs from a shelf button in Maya, Blender, or Houdini - proving you can turn a toy into something a team actually uses.
LevelStarter
Time~a day
TechPython + a DCC
ProvesTool UX + DCC API
DeliverableA shelf tool + video
NOthe brief
Build a tool inside your DCC of choice that generates a UV checker texture and applies it to the selected object's material - the classic "why does this look stretched" debugging aid, one button away. The browser version proves the concept; your version proves you can ship it where artists actually work.
This brief is deliberately about the boring 80%: a tool that runs from a shelf, has a small sensible UI, applies its result to a selection, and doesn't break undo. That boring 80% is exactly what separates a script from a tool, and it's what a pipeline lead is checking for.
NOconstraints
It runs from a shelf button or menu item, not by pasting code into a console. If the artist has to read your source to use it, it isn't done.
It acts on the current selection. No hardcoded object names. Handle "nothing selected" with a clear message, not a stack trace.
Undo works. One Ctrl+Z cleanly reverses whatever the tool did. In Maya that means an undo chunk; in Blender, one operator.
At least two checker options. Black-and-white and one more (coloured, numbered, or gradient) - enough that there's a real choice in the UI.
NOacceptance criteria
A shelf button / menu item opens the tool (or runs it directly).
With an object selected, pressing "apply" gives it a checker material visible in the viewport.
With nothing selected, the tool says so clearly and does nothing destructive.
One undo reverts the material assignment cleanly.
Resolution is selectable and only offers power-of-two sizes.
Running it on a second object doesn't disturb the first.
NOsuggested approach
Generate the image first, headless. Get a function that writes a checker PNG to disk (or builds it in memory) working on its own, before any DCC code. Test it by opening the file.
Wire it to a selection. Create a material, plug the texture in, assign it to the selected object. This is the DCC-specific part - lean on the API docs.
Wrap it in undo. Get the whole apply step reverting as one action before you add any UI.
Add the smallest UI that offers the real choices - resolution and pattern. Resist adding twenty options; five good controls beat twenty-five accurate ones.
Make it a shelf tool and use it like an artist would. Wherever you hesitate, that's your bug.
Where the API knowledge lives
The Rosetta Stone shows the same task written in Maya, Blender, and Unreal side by side - including how each one builds a tool with a button and wraps work in undo. Steal the patterns for whichever DCC you pick.
NOstretch goals
Per-cell coordinates (A1, B2...) baked into the checker, so an artist can point at exactly which shell is wrong in a review.
Non-square textures with an aspect lock, so the checker doesn't stretch on non-square UV layouts.
A "restore original material" button - remember what was there before and put it back. Now the tool is genuinely non-destructive.
Make it work across all three DCCs from one shared core module, with thin per-DCC wrappers. This is the cross-DCC lesson made real, and it gives you a portfolio piece with teeth.
NObreakdown template
A DCC tool is an interaction, so the single most important thing in your breakdown is a short video of it working. A still screenshot undersells a tool badly.
README / breakdown skeleton
## UV Checker Tool (Maya / Blender / Houdini)
**The problem:** checking UVs meant hunting for a checker texture and
wiring it up by hand every time.
**Demo:** [60-second silent GIF: select object -> click -> checker appears
-> spin the viewport -> undo]
**Constraints:** shelf-runnable, selection-based, undoable.
**The interesting bit:** [the undo chunk / material-graph wiring / the
"nothing selected" guard - whichever fought you hardest]
**Result:** UV debugging went from ~2 minutes of setup to one click.
**What I'd change:** [restore-original / cross-DCC core / ...]