Mosaic Path is a project developed during MRAC Workshop-Robotic Mosaic, where teams had to design a mosaic system to be robotically fabricated with random broken tiles. The core of the project is an elegant path finding algorithm that was completely developed within the workshop and deals with multiple problems such as planning a path to reach targets, picking the most compatible pieces to use and avoiding obstacles.


Our inspiration came from the work of Pierre Mesguish with branching mosaics that don’t cover the whole surface but rather leaves empty space. The main purpose is to apply this idea of a branching mosaic in the architectural scale and design emergent paths.
In this direction the case studies came from The floating piers and New York’s high line park.
Finally for the material our focus is the stone Peruvian roads and paths.

Lago Iseo, Italia. Christo and Jeanne Claude, The Floating-piers (2016).

Pierre Mesguich Mosaïk

Stone assembly and Pathways references. Machu Picchu, Pisac, Cajamarca. Perú.

Urban architectural spaces as references for possible applications.

New York’s High Line Park. James Corner Field Operations + Diller Scofidio + Renfro + Piet Oudolf.

Rural architectonics spaces as references for possible applications.

Punta Pite. Zapallar Chile. Estudio del Paisaje Teresa Moller & Asociados


The given setup for the workshop in an GRB camera that collects the data sends it to a grasshopper definition which processes them and sends the pick and place planes to ROS. Inside ROS environment the trajectories for the Universal robot are calculated and sent to the robot to operate.

Camera capture and contour detection and parts identification


For the data collection an RGB camera is used to scan the tile pieces placed on the table, in real time using a video. With OpenCV library we are able to extract information about the number and the contours of the pieces. After further analysis from the contours we extract the length of each side and the central point of the pieces.

Loop script, Pieces detection and robot path simulation, Robot pick and place


Mosaic Path is a loop based grasshopper algorithm that creates a growth, starting from a point and reaching all the targets using random tile pieces, while avoiding existing obstacles.
Input: As inputs it needs the contours of the available pieces, a starting point, a number of target points and can optionally use defined obstacles and boundary shapes.
Process: The algorithms starts by placing a piece to the starting point. Then it searches for the closest target to the placed pieces and makes it the current target. It finds the closest side(“c-side”) from the placed pieces to the current target and from the available pieces identifies the piece with the side of closest length to the “c-side”. If the piece does not intersect with the already placed pieces, or with an obstacle or the boundary shape, it is placed with the matching sides almost touching. Otherwise it is placed back to the available pieces and the “c-side” is removed from the list of the available closest sides. If a target is reached it is removed from the targets list. Output: As output the algorithm provides the pick and place planes for the robotic arm.

Design algorithm





The project’s purpose is to use waste stone material to create emergent branching paths through the city and nature.


Some future steps to further improve the existing algorithm might be to:
a. Search for branches that don’t lead to a target and delete them.
b. Add more width to where is needed according to traffic data. This can be done by adding more pieces sideways.
c. Try to create paths that follow more straight lines. To achieve this for the next component to be placed, we can choose the ten closest lengths instead of one and from those ten pieces place the one with the best orientation towards the target.


ROBOTIC MOSAIC / MOSAIC PATH // W.2.1  is a project of IAAC, Institute for Advanced Architecture of Catalonia developed at Master in Robotics and Advanced Construction Workshop 2.1 in 2020/2021 by:

Students: Juan E. Ojeda, Orestis Pavlidis

Faculty: Angel Muñoz & Alexandre Dubor
Faculty Assistant: Soroush Garivani

Workshop Participants:
Shahar Abelson, Hendrik Benz, Alberto Browne, Charngshin Chen, Michael DiCarlo, Helena Homsi, Arpan Mathe, Juan E. Ojeda, Orestis Pavlidis, Aslinur Taskin