Skip to content

CurioDataflows for urban visual analytics

Load city data, transform it with Python, and build linked charts and maps in a dataflow that records every change. Use it in your browser, or run it on your own computer.

  • Try it online
  • Install with pip or Docker
  • Paper: IEEE VIS 2024
  • Join us on Discord
  • Open source, MIT license
The Curio logo, a bird drawn as a dataflowThe Curio logo, a bird drawn as a dataflow

Five catalogs, many dataflows

Find a dataset, load it, run models and compute with it, with AI agents at every stage. Curio composes the pieces into an analysis.

Agent Catalog Every stage

Ten AI agents you attach to a node, a connection or the whole canvas. Nothing changes until you apply what one proposes. AI agents

  1. 1Discover

    Discovery Catalog

    Search open data portals, storage and services from one place, and bring datasets into your Data Catalog and models into your Model Catalog.

    • Dataset Finder
    • Node Researcher
  2. 2Load

    Data Catalog

    The datasets your dataflows read. Drag one onto the canvas and Curio writes the code that loads it.

    • Dataset Finder
  3. 3Infer

    Model Catalog

    Trained models a node runs over your data, such as image segmentation for street photos. Drag one onto the node.

  4. 4Compute

    Node Catalog

    Node packages that transform, analyze and visualize, with the libraries they need.

    • Node Builder
    • Node Content Builder
    • Package Recommendation
    • Package Builder

Curio

Composes them into an analysis

A dataflow in Curio: a Data Loading node and a Data Transformation node feed an Autark map and a Vega-Lite bar chart of downtown Chicago's ZIP codes, with agents attached to every node, to a connection and to the canvas.
  • Dataflow Builder
  • Connection Builder
  • Researcher
  • Chat

Behind them, three helpers do part of the work and are never attached: the Dataflow Planner, the Dataflow Reader and the Generated Content Evaluator.

Example use cases

Dataflows that bring a city's data, models and views together in one place.

Use case 1In development

Video camera analysis

Bring footage from traffic and street cameras into a dataflow. Computer vision nodes turn what each camera sees into data, which you can map, chart and compare with the city's other datasets.

Use case 2In development

Ortho image fixing

Find and fix the flaws in aerial orthoimagery before it feeds mapping and computer vision models. Each fix is a step in a dataflow, so it can be reviewed, run again on new tiles, and traced in the dataflow's provenance.

Use case 3In development

City comparison

Run the same analysis on several cities and compare the results side by side. Build the dataflow once, point it at each city's data, and read the differences in linked maps and charts.

The Milan heat example in Curio: a map of thermal comfort by census tract, a scatter plot of it against residents over 65, and a box plot of residents over 65

Use case 4

Flooding and weather analysis

Combine weather records, climate rasters and census data to see which neighborhoods and residents are exposed to extreme heat or flooding. The Milan heat example, which ships with Curio, computes a thermal comfort index for every census tract and links a map with charts of residents over 65.

The Milan heat example

Getting started

Using Curio

Extending Curio