The behavioral modular robotic simulation framework
Download

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.”
—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
customize yours

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.
watch 32 million robots stress test

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!
go online

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

Start coding

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!
subscribe now
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.
downloadgithubdocumentation
An online tool for generating customizable application templates for any supported module types.
Template generator

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.
Get in touch with us