Architectural swarms for responsive façades and creative expression
Data files
Jan 07, 2026 version files 2.87 MB
-
README.md
4.71 KB
-
shading_experiments_data.zip
2.86 MB
Abstract
Living architectures, such as beehives and ant bridges, adapt continuously to their environments through self-organization of swarming agents. In contrast, most human-made architecture remains static, unable to respond to changing climates or occupant needs. Despite advances in biomimicry within architecture, architectural systems still lack the self-organizing dynamics found in natural swarms. In this work, we introduce the concept of architectural swarms; systems that integrate swarm intelligence and robotics into modular architectural façades to enable responsiveness to environmental conditions and human preferences. We present the Swarm Garden, a proof-of-concept composed of robotic modules called SGbots. Each SGbot features a buckling-sheet actuation, sensing, computation, and wireless communication. SGbots can be networked into reconfigurable spatial systems that exhibit collective behavior, forming a testbed for exploring architectural swarm applications. We demonstrate two application case studies. The first explores adaptive shading using self-organization, where SGbots respond to sunlight using a swarm controller based on opinion dynamics. In a 16-SGbot deployment on an office window, the system adapted effectively to sunlight, showing robustness to sensor failures and different climates. Simulations demonstrated scalability and tunability in larger spaces. The second study explores creative expression in interior design, with 36 SGbots responding to human interaction during a public exhibition, including a live dance performance mediated by a wearable device. Results show the system was engaging and visually compelling, with 96% positive attendee sentiments. The Swarm Garden exemplifies how architectural swarms can transform the built environment, enabling "living-like" architecture for functional and creative applications.
Dataset DOI: 10.5061/dryad.5x69p8djj
Description of the data and file structure
The file Swarm_Garden_code.zip contains the code from the shading experiments and the interactive modes described for the Swarm Garden in the manuscript titled "Architectural swarms for responsive façades and creative expression". The file shading_experiments_data.zip contains data collected from the shading experiments.
Files and variables
File: shading_experiments_data.zip
Description: This dataset consists of multiple CSV files, each showing recorded time-series data from the Swarm Garden shading experiments conducted on 8 days from 7am to 2pm with 16 SGbots.
File naming convention: File names begin with the experiment type (od for opinion-dynamics SG_od collective experiments, ind for individualistic experiments), followed by the weather condition of the day (sunny or rainy), and end with the day in August 2024 on which the experiment was run.
Variables: Each row corresponds to a single robot at a given time step. Columns are defined as follows:
- robot_id: (int) Unique identifier for each SGbot robot
- per_lux: (float) Normalized illuminance measurement detected by SGbot's ambient light sensor
- ambi: (float) Raw illuminance measurements detected by SGbot's ambient light sensor
- proxi: (float) Raw encoding sensor measurements
- demand: (float) Encoding sensor demand calculated by the p-controller
- per_proxi: (float) Normalized encoding sensor measurements
- mode: (str) Control mode (either opinion dynamics SG_od or individualistic)
- alpha, beta, gamma: (float) Coefficients values to the terms of the SG_od model
- first, second, third: (float) The terms of the SG_od model
- total: (float) Final value calculated by the SG_od model
- ideal: (bool) Boolean variable for whether the room is in the preferred ambient light user range
- h, m, s: (int) Hour, minute, and second of the timestamp of the data recording
- time: (str) Timestamp for the the data recording
Code/software
File: Swarm Garden_code/interaction_code/SGbot_interaction.py
Description: This Python code implements the distributed embedded control and communication system for an SGbot robot in the Swarm Garden. Each robot executes local behaviors and directional message propagation to support coordinated swarm-level responses.
File: Swarm Garden_code/interaction_code/passive_observation.py
Description: This Python code was created for the passive observation interaction for the Swarm Garden. The program runs continuously, executing a sequence of coordinated spatiotemporal patterns across the swarm.
File: Swarm Garden_code/interaction_code/wearable.py
Description: This Python code was created for the wearable interactions for the Swarm Garden. The program detects the orientation of the wearer's wrist using the on-board IMU on the Arduino Nicla Vision and sends commands to the swarm accordingly.
File: Swarm Garden_code/interaction_code/apriltags_neighbour_id.py
Description: This Python code creates a neighborhood for the swarm by identifying April Tags in the back of the robots using a camera to populate the swarm neighborhood and share it with the robots.
File: Swarm Garden_code/shading_code/shading.py
Description: This Python code was created for conducting the shading experiments. It contains the SG_od model for the collective shading, as well as the code for individualistic shading.
File: Swarm Garden_code/shading_code/parameters.py
Description: This Python code contains the parameters unique to each SGbot, namely the robot ID, and calibrated encoding sensor values.
File: Swarm Garden_code/shading_code/motors.py
Description: This Python code contains the code necessary to operate the stepper motor of the SGbot.
File: Swarm Garden_code/shading_code/ambientLight.py
Description: This Python code contains the code that reads data from the ambient light sensor.
File: Swarm Garden_code/shading_code/externalProx.py
Description: This Python code contains the code that reads data from the encoding sensor.
File: Swarm Garden_code/shading_code/builtinProx.py
Description: This Python code contains the code that reads data from the interaction sensor.
Access information
Other publicly accessible locations of the Python code for interactions: https://github.com/Princeton-SSR/swarm-garden
