Tools & AI Projects

I build tools the way a production artist would - starting from the friction I feel in the actual work, not from a feature list. Years in the pipeline tell me exactly what to build and whether the result is genuinely right; AI-assisted development is what lets me ship it.

Seamless
Team Adoption
0%
Less Manual Work
Under Budget
Reliably Optimized
Zero Eng Dep.
Solo AI-Assisted Build
Case Study

Asset Optimization Browser

Turned hours of manual, error-prone asset auditing into instant, visual, confident optimization - adopted by the entire VFX discipline.

Overview

Project
Standalone desktop tool for VFX asset visualization, dependency tracking, and optimization
Role
Sole owner - identified the problem, designed the workflow, and drove the build end-to-end
Support
No dedicated engineering support; self-directed
Dev Model
AI-assisted development (Claude + VS Code)
Tech Stack
Python, JavaScript, HTML
Type
Standalone desktop application

The Problem

VFX artists spend a meaningful slice of every production cycle on work that has nothing to do with the actual craft: figuring out what an effect depends on and how expensive it is. Before the tool, that work was entirely manual.

πŸ“‚

Manual File Browsing

Hunting through deep folder trees to find the textures, meshes, and sub-systems an effect referenced.

πŸ”—

Hand-Checking Dependencies

Opening files one at a time to trace what pointed to what, with no reliable way to know if an asset was still in use.

🎯

Guessing at Memory Cost

No direct line of sight into which assets were driving an effect over budget - optimization was reactive and imprecise.

πŸ”„

Iterating Blindly

Making a change, rebuilding, and re-checking by eye, then repeating until the numbers looked acceptable.

The cost to production was real. Optimization passes - a routine, recurring part of shipping effects under a memory budget - became a tax on the whole discipline. Effects shipped heavier than they needed to, and cleanup of unused assets was inconsistent.


Approach

Identifying the opportunity. The insight came from production experience, not from a feature request. Doing the optimization work myself, repeatedly, made the pattern obvious: the bottleneck wasn't the decision to optimize - artists knew how to make effects cheaper - it was the information gathering required before any decision could be made.

Designing around the artist workflow. I mapped the real day-to-day path an artist takes through an effect: open the system, find its emitters, trace each emitter to its meshes and textures, check whether those assets were shared or unique, and estimate the weight. The tool was designed to mirror that mental model rather than impose a new one.

UX principles: Show, don't make them dig. Keep it in one place. Match production language. Filters, badges, and reports use the vocabulary artists already use - so there's effectively no onboarding.

Why AI-assisted development was the right call. The problem was well understood by exactly one kind of person - someone who lives in the production workflow. AI-assisted development closed that gap: it let the person with the domain expertise also be the person who ships, without waiting in an engineering queue or losing fidelity through a spec-handoff.


The Solution

A single desktop application that sits alongside the artist's normal work and answers three questions instantly: what is this asset, what does it cost, and what depends on it?

πŸ–ΌοΈ

Asset Library & Preview

Browse and search all asset types with visual thumbnails. Finding the right asset is immediate instead of a folder hunt.

πŸ”

Integrated 3D Viewer

Inspect meshes directly in the tool with geometry stats visible - no round-tripping through a heavier application.

πŸ•ΈοΈ

Dependency & Reference Tracking

See exactly which systems use a given asset, and which assets a system pulls in. Makes it safe to identify and remove genuinely unused assets.

πŸ“Š

Optimization Visibility

Surface the stats that matter for a memory pass so heavy contributors are obvious. Target the actual cost drivers instead of guessing.

πŸ“‹

Usage & Unused Reporting

Project-level reporting shows what's used, what's not, and by how much - supporting cleanup at scale, not just one effect at a time.

The workflow shifts from investigate-then-guess-then-verify to see-then-act.


Before vs. After Workflow

πŸ”΄ BEFORE - Manual, slow, uncertain Open effect Manually browse folders for assets Hand-check dependencies file by file Guess at memory cost - no visibility Make a change & rebuild Under budget? No - iterate Maybe? β†’ Ship unsure 🟒 AFTER - Visual, instant, confident Open effect Dependencies shown instantly & visually Heavy assets identified at a glance Make one targeted optimization Ship - confidently under budget βœ“ Asset Optimization Browser

AI-Assisted Development

I'm not an engineer. I'm a domain expert who used AI to bridge the gap between knowing what to build and being able to build it. My value in the loop was never writing the code - it was knowing, with production authority, what the code needed to do and whether it was doing it correctly.

πŸ—£οΈ Describing in Domain Language

I didn't hand the AI technical specs. I described problems the way an artist experiences them: "I need to see everything this effect depends on." The AI translated intent into implementation.

πŸ” Short Iteration Loops

Conversational and incremental - describe a behavior, get a working version, use it, react, refine. The tool grew through many small, evaluated iterations.

πŸ” Evaluating with Production Experience

I could look at output and immediately know whether a dependency count was right, whether a stat was meaningful, whether a workflow matched how artists actually work.

πŸ—οΈ Directing Architecture

I made the higher-level calls - standalone desktop tool, single window, mirror the artist's workflow. The AI filled in the how; the shape was directed by product intent.

AI didn't replace engineering expertise - it made engineering expertise non-blocking for a problem that only a domain expert could correctly specify and validate.

AI-Assisted Development Loop

🎯 Identify pain point πŸ—£οΈ Describe in domain language πŸ€– AI generates solution πŸ” Evaluate with domain expertise Correct? & useful? Not yet - iterate / refine πŸš€ Ship πŸ“£ Gather feedback

High-Level Architecture

πŸ–₯️ UI LAYER Asset Library & Search Inspector & Reports visuals & insights ↑ ↓ queries πŸ“Š VISUALIZATION LAYER 3D Viewer Dependency Graph Optimization Stats assets & metadata ↑ ↓ requests πŸ—‚οΈ DATA LAYER Asset Parsing meshes, textures, systems Dependency Extraction Local Cache / Index Production Asset Files

Results

Seamless Adoption

The tool had very easy team adoption that helped us meet very demanding performance optimization goals under strict deadlines.

~70% Less Manual Work

The information-gathering that used to dominate an optimization pass was largely eliminated, cutting the manual portion roughly in half.

Under Budget

Artists can now identify and fix memory-heavy effects confidently - optimization shifted from a reactive guessing game to a targeted, measurable action.

Senior Time Recovered

Time previously lost to manual auditing and bookkeeping went back into actual creative work.

Engineering Impact

As an early AI adopter, I helped inspire the Engineering team to dive into AI tools after demonstrating this tool, and influenced their own product goals with some of the features I developed.


Learnings

βœ… What Worked

  • Build for the workflow you actually live in. The tool succeeded because it was designed by someone doing the work, for the way that work really happens.
  • AI collapses the specify-build gap. When the person who understands the problem can also ship the solution, you avoid the fidelity loss and delay of a traditional handoff.
  • Short evaluation loops beat big plans. Iterating against real use - rather than a fixed spec - kept the tool honest and on-target.

πŸ”„ What I'd Do Differently

  • Establish structure earlier. Moving fast with AI is easy; keeping the codebase maintainable takes deliberate attention.
  • Capture requirements as I go. Much of the "why" lived in my head and in the conversation. Writing down decisions earlier would make the tool easier to hand off.
  • Design for extension from the start. Several features I added later would have been cheaper if I'd anticipated them in the initial structure.
Production experience tells you what to build and whether it's right; AI-assisted development makes it possible to actually ship it. Together they let a domain expert deliver a real tool without depending on scarce engineering bandwidth.