Skip to main content

System Architecture

CityScope is composed of a series of tools loosely connected to each other. The tools are developed in different languages and frameworks, and they communicate through a central server, CityIO.

CityScopeJS​

CityScopeJS is a modular, open-ended architecture for MIT CityScope project.

  • User interface to interact with the CityScope projects
  • Uses CityIO Websockets to communicate with the server
  • New user experience and design for the CityScope projects

CityScopeJS Architecture

Figure: CityScopeJS Architecture (Photo: Ariel Noyman)​

CityScopeJS includes several other modules for building, testing and deploying an end-to-end CityScope platform. Each module is developed as a standalone part of the system with minimal dependency on others. Data flow between modules is done using cityIO, which operates between the different modules.

Modules​

Different analysis modules calculate various indicators on urban performance, such as noise, mobility, energy and others. These analysis modules are developed by experts in each evaluation field.

CityScope Server (cityIO)​

CityIO is a server program that saves tables to have different software (visualization, simulation) read/write information. It exposes an API to serve JSON files representing table info.

  • Enables the communication between the different components of the system.
  • Saves the projects to access them seamlessly in all the components.
  • Rebuilt to allow real-time communication, using WebSockets.

See https://github.com/CityScope/CS_CityIO

Tangible User Interfaces​

CityScope also includes tangible user interfaces (TUIs) that allow users to interact with the system in a physical way. These interfaces are developed using the CityScopeJS platform.