Data

Our goal was to create a city within a city, an organism that operates 24/7, where functions overlap and change throughout the day based on residents’ needs. Each of the eight specific neighborhoods has spaces dedicated to changing functions. A key performance indicator (KPI) we used is the occupancy efficiency formula, measuring how effectively spaces are utilized over 24 hours.

To manage program distribution, we used micro and macro adjacency matrices, which contain all program data. These were imported into Grasshopper, allowing us to dynamically distribute spaces throughout the building.

Our team primarily provides data rather than receiving it. We work with program data from Excel, massing information, and functional requirements. From these inputs, we generate area allocations, functional distributions, voxelized spaces, massing strategies, node floors, circulation pathways, and key performance indicators.

Allocation

First, we run the macro adjacency matrix, which uses area, orientation, and position as inputs—data provided by other teams. Then, at the micro scale, we place specific functions within each neighborhood, using data from our Excel sheet. To ensure efficiency, we use a KPI called the space exchange factor, which helps control how spaces adapt to different uses over time.

Functions are distributed based on the adjacency matrix within the massing in collaboration with the structural team. Each neighborhood has its own set of functions and requirements, ensuring diversity and adaptability.

Floor distribution is determined based on team requirements. For example, residential spaces are placed along the periphery, while mid-level node floors are allocated to structural and industrial functions.

Structural cores are key circulation elements, connecting different neighborhoods and ensuring smooth transitions between spaces.

At the micro scale, we refine function placement using a combination of the adjacency matrix, Kangaroo solver, and Python scripts. Points are transformed into spheres representing the required area for each function, allowing for optimized spatial distribution.

Voxelization

Voxelization is an automated process using SpecklePy and Fly. This setup allowed Seda to focus on adjacency matrices while I handled voxelization and shared the data with other teams in real time.

Here’s an example of how a single neighborhood was voxelized.

  • Points from the boundary define the overall shape.
  • Residential functions take the facade for maximum light and air access.
  • Remaining spaces are assigned to service and industrial functions based on area needs.
  • Python scripts sort the voxels according to functional area requirements.
  • From slab curves, we define corridors and vertical cores, optimizing internal circulation.

This floor-by-floor visualization shows the entire building, with each function color-coded consistently across neighborhoods. This ensures that functions maintain a logical and structured placement within the hyper-building.

This cross-section highlights the liveliness of neighborhood cores, showcasing dynamic gallery spaces that foster social interaction and engagement.

To summarize, our core focus was on data-driven design, efficient space allocation, and automated voxelization. These elements enabled us to create a highly flexible and responsive hyper-building that adapts to the needs of its residents throughout the day.