Inspiration
Code models often generate text first and repair invalid output later. ShaSha explores a different approach: let the model choose meaning while the system controls syntax.
What it does
ShaSha turns structured actions into valid Rust. A guided web demo shows three deterministic examples, while a separate Rust prototype selects actions and checks each result with rustc.
How we built it
We built the interface with React, TypeScript, and Vite. The prototype uses Rust and Candle, with a controller, deterministic renderer, and compiler validation.
Challenges we ran into
We had to keep generated actions legal, preserve symbol references, and produce distinct Rust identifiers. We also kept the demo honest about its fixed UI paths and untrained model.
Accomplishments that we're proud of
We made each semantic choice visible beside its rendered Rust. We also built an end-to-end prototype that rejects code when syntax or type checks fail.
What we learned
Code generation becomes easier to inspect when models choose constrained actions instead of raw text. Compiler validation proves structural correctness, but not whether code matches a prompt.
What's next for ShaSha
We plan to train on prompt-action pairs, support richer Rust programs, compare semantic accuracy with text generation, and connect the UI to inference.
Log in or sign up for Devpost to join the conversation.