Inspiration
AI can generate a 3D model in minutes. Getting the asset you actually need into a game can still take hours of unfamiliar cleanup.
My background is in engineering and product development, not digital art. Even with AI generation, Blender, and game engines, I found it frustrating to take a simple static asset from concept to something usable. Open-source tools already perform many of the necessary repairs; the difficult part is knowing which tools to use, in what order, and whether the result is right.
I built Asset Shepherd for solo developers and small teams in that same situation: people who need help preparing assets, not another full-fledged modeling application. Expert technical artists may not need this guidance. The opportunity is to make their everyday cleanup knowledge more accessible.
What it does
Asset Shepherd is a conversational assistant for inspecting and repairing static GLB assets. Upload a model, describe what you want, choose its destination and intended use, and review the agent's recommendations before consequential changes are applied.
The demo starts with an AI-generated collection of gaming peripherals. I only wanted the headphones. The agent had to identify which of dozens of disconnected geometric parts belonged together—not simply keep the largest mesh. It removed the unrelated objects, then helped refine the headphones' scale. The exported GLB was reopened in Blender.
Supported actions include selecting disconnected components, uniform scaling, grounding and pivot adjustment, quarter-turn orientation changes, display-name cleanup, removal of degenerate geometry, welding truly identical vertices, and optional mesh simplification. A before/after viewport and downloadable diagnostics make the result inspectable. Originals are preserved, and users can refine or download a candidate.
This is a focused cleanup workflow, not a replacement for Blender, a rigging system, or a promise to repair every topology problem. Some findings remain warnings rather than automatic fixes.
How I built it
The system separates three responsibilities:
- The human supplies intent and approval: what the asset should be, how it will be used, and which consequential changes to accept.
- The AI interprets evidence and plans: structured geometry measurements and rendered views help it connect the user's request to bounded, typed tool calls.
- Deterministic tools do the editing and checking: code applies the approved changes, reopens the resulting GLB, and produces fresh measurements and visual evidence. A model's favorable assessment does not override failed checks.
The agent uses the Strands Agents SDK inside Amazon Bedrock AgentCore Runtime. A FastAPI web application runs on Amazon ECS. Amazon SQS and a Lambda dispatcher move work off the web request path; S3 stores models and evidence, and DynamoDB tracks workflow state and command receipts. Cognito, IAM, Secrets Manager, and CloudWatch support authenticated access, credential handling, and operations.
The current default is OpenAI Luna with xhigh reasoning, called through the direct OpenAI API from AWS. Kimi K2.5 through Amazon Bedrock is an alternative. I also tested Muse Spark and Gemini Flash. Luna's observed performance on difficult component selection and multi-step repairs made it the practical choice for this demo; these tests are not a claim of universal model superiority.
The repair pipeline builds on open-source projects including pygltflib, NumPy, Trimesh, and meshoptimizer, with browser-based 3D visualization and rendered evidence. Tripo generated the example asset; Blender was used to inspect the exported result, not as a hosted backend dependency. The repository is MIT-licensed and includes sample assets and setup documentation. Codex helped with development.
Challenges I ran into
Semantic objects are not the same thing as geometric components. A headphone assembly can consist of many separate pieces, and preserving it requires both visual understanding and exact component bookkeeping.
Verification also needed careful engineering. Different definitions of mesh connectivity initially produced contradictory component counts. Making those definitions consistent was essential: an apparently good image should not conceal a broken check, but a faulty check should not reject a sound result either.
Large uploads and long-running work exposed timeout and session-handling problems. Moving processing off the request path, keeping durable workflow state, and improving progress and error messages made the hosted experience more robust.
Accomplishments and lessons
The most satisfying result was watching the agent isolate a coherent headphone assembly from a cluttered generated asset, then exporting it for use outside Asset Shepherd. Additional hands-on tests covered assets such as a tablet, a collar, and a riding crop.
The central lesson is that useful agency is not unrestricted tool access. It is the combination of clear user intent, enough evidence to choose the right operation, bounded execution, and honest verification. Good repair tools already exist; a guided agent can make them much easier to use.
What's next
Expand the real-world test corpus, strengthen engine-import validation, and continue simplifying the refinement experience—especially how remaining warnings and candidate status are explained. The goal is reliable assistance with common asset-intake tasks, not an ever-growing list of unverified fixes. We also plan to add compatibility with additional input file types, such as .fbx.
Try it and learn more
Use the live-site link below. Judges can find shared sign-in credentials in the private testing instructions; no personal API key or AWS account is needed. The public repository includes sample GLBs, technical documentation, and a place to ask questions through GitHub Issues.
Built by Joey Gennaro for the Agents for Humans Hackathon, in the Professional Agents track.
Built With
- amazon-bedrock-agentcore
- amazon-web-services
- fastapi
- openai
- python
- strands-agents
Log in or sign up for Devpost to join the conversation.