The behavioral modular robotic simulation framework.

8 native modular robots supported

 “VisibleSim is a framework for creating behavioral simulators for distributed lattice-based modular robotic systems in a regular 3D environment. It supports modules in all kinds of lattices and with diverse motion capabilities, embedded sensors, and actuators.” —Dr. Benoit Piranda

2D Nodes

Lattice: square (2D)
Neighbors: 4
Motion: slides along or turns around an edge
Display: RGB colors

Smart Blocks

Lattice: square (2D)
Neighbors: 4
Motion: slides along a vertical border
Display: RGB colors and upper side numbers

Hexanodes

Lattice: hexagonal (2D)
Neighbors: 6
Motion: turns around a neighbor (pivot)
Display: RGB colors

2D Catoms

Lattice: hexagonal (2D vertical)
Neighbors: 6
Motion: turns around a neighbor (pivot)
Display: RGB colors

Blinky Blocks

Lattice: cubic (3D)
Neighbors: 6
Display: RGB colors
Sensor: tap

Sliding Cubes

Lattice: cubic (3D)
Neighbors: 6
Motion: slides along or turns around an edge
Display: lights in color

3D Catoms

Lattice: Face-Centered Cubic (3D)
Neighbors: 12
Motion: turns around a neighbor (pivot)
Display: RGB colors

Datoms

Lattice: Face-Centered Cubic (3D)
Neighbors: 12
Motion: deforms around a neighbor (pivot)
Display: RGB colors

Visiblesim let the user import his own custom modular robot type.

A behavioral simulator

Physics simulation is not the purpose of VisibleSim, instead it aims at providing the tools for studying the behavior of modular robots.

Some of the robots have the capability of moving, sliding (Smart Blocks, 2D Nodes, Sliding cubes), rotating (Hexanodes, 2D Catoms, 3D Catoms, Sliding cubes), and deforming (Datoms). VisibleSim offers functions to activate these motions and detect the docking of a robot in order to make us of moves within a distributed program.Are also available, tools to replay a simulation, create videos and snapshots.

Performances

Each module in the system is assigned a unique identifier, and executes the same controller as all other modules, generating environmental events that are handled deterministically by VisibleSim's discrete-event scheduler.

This allows for accurate simulations of complex algorithms on robotic ensembles up to millions of modules in size on a single computer.

Introducing the BlockCodes

In VisibleSim, each module executes the same distributed program, acting as the controller of the module, the BlockCode.

“BlockCodes are C++ programs that describe what actions should be carried out by the module upon initialization, and in response to various internal or external events (communication received, neighborhood updates, end of motion, timer, etc...).” — Pierre Thalamy

Startup function

Such a function runs by each module upon startup, that initializes internal variables and usually sends a message to neighbor modules.

Event handler

Runs a thread associated to the particular type of the processed event, that updates the internal state of the modules and carries out any necessary action.

Message handler

Launches a process associated to the particular type of the received message, that updates internal variables and carries out any necessary action such as forwarding the message to neighbors.

Run your BlockCode online

VisibleSim is available online, requires no download and no installation, just sign up and try it.


Write your BlockCode in C++, JavaScript or Python. Build an initial XML config file.

Upload these two on the server and run the simulation.


Enjoy visualizing your code and interacting with it!

We are also making available for free an online tool for generating customizable application template files for any supported module types.

Visit our Youtube channel

VisibleSim has been our dedicated programmable matter simulation tool for almost a decade. Over the years, it has been used to experiment and validate work on various modular robotic architectures and models, with many results appearing in published research. Watch them all in video!

Available resources

Download

VisibleSim is available as an open-source software under AGPLv3 license. You can get the latest stable version or clone it from our development stream.

An online tool for generating customizable application templates for any supported module types.

Get involved and contribute

Feel free to contact us if you want to become part of the active community of developers for VisibleSim and its tools.