Inspiration
We were inspired by the cutting-edge research at UIUC in the spaces of biohybrid robotics, computer modeling, and soft robotics simulations. Inspired by the work by the Gazzola Lab in computational soft object modeling, we chose to explore agentic solutions to streamline the modeling process and accelerate the development of cutting edge soft robotics technologies and simulations. Instead of installing and maintaining multiple, often-deprecated visualization tools, researchers can generate and view simulations directly on our platform—and produce reliable, executable PyElastica code without having to debug or correct hallucinated outputs from a general-purpose web LLM.
Shoutout (to the goats)
We extend our thanks to Keywords.ai, Trae, and Lovable for sponsoring credits for this project. We used Keywords to log our LLM requests and utilize the gateway to route the user request to the appropriate LLM based on the specific, grounded reasoning we needed. Trae powered our backend coding and Lovable our frontend.
What it does
Squishy is a multi-agent orchestrated platform that accelerates the development of soft robotics simulations by creating 3-D visualizations, technical specifications, and Python/JSON files, solely based on natural language input. This capability is poised to not only democratize soft object modeling, but make the design, engineering, and research process exponentially more streamlined, productive, and intuitive.
How we built it
Using Trae and Python, we created two AI agents that 1) take a natural language input and convert it into technical specifications, and 2) write JSON and Python code that is fed to the PyElastica software to predict data and apply physical requirements. This output was then converted into 3-D visualizations using Matplotlib and displayed in the frontend website, coded by Lovable and integrated through GitHub.
Backend (Python)
- Framework : FastAPI (high-performance async web framework).
- Physics Engine : PyElastica (Cosserat Rod theory for soft body dynamics).
- Performance : Numba (JIT compilation via LLVM) + NumPy .
- Visualization : Matplotlib (headless rendering) + FFmpeg (GIF encoding).
- Orchestration : FastAPI BackgroundTasks for async simulation processing.
- LLM: KeyWords AI for smart routing to LLMs that can handle grounded reasoning required for the task.
Frontend (TypeScript)
- Framework : React 18.
- Build Tool : Vite.
- Styling : Tailwind CSS.
- UI Components : Shadcn UI (Radix Primitives).
- Editor : Custom React components for the code viewer.
Challenges we ran into
One of the key challenges we experienced was in the initial technical specifications, where the physical laws governing the simulations were unrealistic, with complete disorder and random movement. However, we were able to address this challenge by adding physical requirements and constraints to the agents, including anisotropic friction and muscle strength to increase the overall tension within the objects.
Accomplishments that we're proud of
Most of us hadn't even heard of soft-object modeling, much less Cosserat rods, before today. We were excited about the deep technical implications of this agentic solution and the challenge of solving software and biophysical problems. In doing so, we were successfully able to address an interdisciplinary and highly impactful challenge through Squishy and are proud of this accomplishment.
What we learned
We learned about the agentic AI development process and they key challenges and opportunities in agentic development. Through backend-frontend integration to creating a framework using gateways and prompt management, we were deeply inspired by the potential of agentic technologies and are looking forward to continuing to innovate in this space.
What's next for Squishy
Up next, Squishy is excited to make simulations that are even more physically grounded and reliable by adding a validation layer between language and simulation. Instead of relying only on the LLM’s internal reasoning, Squishy will check generated scenes against known-stable parameter ranges, valid PyElastica actuation hooks, and physically consistent boundary and forcing models before code is produced. We also plan to introduce a small library of verified motion primitives (such as traveling curvature waves, gravity-driven sagging, and externally forced bending) that the system can compose and adapt to new prompts. Together, these additions will reduce hallucinated mechanisms, improve simulation stability, and ensure that natural language requests map to behaviors that are both expressive and physically achievable.
Log in or sign up for Devpost to join the conversation.