DOI: 10.5061/dryad.5x69p8djj
title: Architectural swarms for responsive façades and creative expression

description: 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.
description: # Architectural swarms for responsive façades and creative expression
 Dataset DOI:
 [10.5061/dryad.5x69p8djj](https://doi.org/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 s*hading_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](https://github.com/Princeton-SSR/swarm-garden)