Bringing soft robotics to life through intuitive simulation
A friendly and powerful Python-based soft robotics simulator that makes designing and testing deformable robots a delightful experience! Whether you're a robotics enthusiast, researcher, or just curious about soft robots, Modelito is here to help you bring your ideas to life.
Modelito is crafted with love by the MODELO KIND ENGINEERING TEAM:
- Daniel Motilla (M0TH)
- Frederick Ayala
- Davide Vigano
- Oyvind Soroy (Colonthree)
- Drake (Yoshi)
We hope you have fun with our software and create something wonderful :3
- Set up your environment:
conda create -n MODELITO python=3.13
conda activate MODELITO
pip install numpy scipy matplotlib vedo PyQt6 lark- Launch Modelito:
python modelito.py- Start Creating! Create a robot definition (e.g.,
my_robot.robot) and load it in the editor.
We've included some fun example robots to help you get started:
quadruped_robot.robot: A lively four-legged walking robot that can traverse various terrainsworm_robot.robot: An elegant segmented robot with smooth undulating motion
Feel free to modify these examples or use them as inspiration for your own creations!
- π¨ Intuitive Visual Interface with syntax highlighting for easy robot design
- β‘ Real-time Physics Simulation for immediate feedback
- π¦Ώ Multiple Gait Patterns including quadruped and worm-like motion
- π οΈ Highly Customizable robot parameters for endless possibilities
- π Beautiful 3D Visualization powered by vedo
Modelito uses an intuitive, easy-to-learn language for defining robots. Here's a basic structure to get you started:
robot MyRobot {
body {
shape: box(w, h, d) | cylinder(r, h) | table | worm
stiffness: <number>
mass: <number>
}
parts {
part_name: leg | body_part {
position: (x, y, z)
size: (w, h, d)
stiffness: <number>
mass: <number>
}
}
actuator {
gait: quadruped | worm
frequency: <number>
forces: {
lift: <number>
push: <number>
swing: <number>
}
}
}
We've kept the controls simple and familiar:
Ctrl+Enter: Bring your robot to life (Run simulation)Ctrl+N: Start a new creationCtrl+O: Open an existing robotCtrl+S: Save your work
We love seeing our community grow! Here's how you can get involved:
- π Found a bug? Open an issue
- π‘ Have an idea? Share your feature requests
- π§ Want to contribute code? Submit a pull request
- π Need help? Join our community discussions
- β Love the project? Buy us a coffee on Ko-fi
Let's create amazing soft robots together! π