Skip to main content

Curio Discord Docs Full stack build PyPI version Contributors

Curio Logo
[Paper] | [Website]

Curio is a framework for collaborative urban visual analytics that uses a dataflow model with multiple abstraction levels (code, grammar, GUI elements) to facilitate collaboration across the design and implementation of visual analytics components. The framework allows experts to intertwine preprocessing, managing, and visualization stages while tracking provenance of code and visualizations.

What's New

Curio v0.5 introduces a number of improvements and fixes thanks to the efforts of new contributors. Highlights include:

  • 📦 Pip Installation Support: Curio can now be installed via pip install utk-curio, making it easier to get started. Check the usage document for details.
  • 🚀 Performance Improvements: Enhanced computation execution speed in the backend.
  • 🧪 Initial End-to-End Testing: Integrated test for backend/sandbox testing.
  • 🧭 New Examples Added: Included new dataflows like "Complaints by Zip Code" and "Accessibility Analysis".
  • 🐳 Docker Enhancements: Fixed Docker build issues by enforcing platform and fixing dependency installation errors.
  • 🧹 General Bug Fixes: Resolved issues with icons, route definitions, upload status tracking, and environment variable references.

See the full Release notes for more. To get started with installation and setup, see the usage guide. For a quick hands-on walkthrough, try the quick start tutorial. If you'd like to contribute, read the contribution guide.

Roadmap

  • 🔌 UTK-Serverless Integration: UTK and Curio's integration is being improved. A new UTK serverless version will be integrated soon.
  • 🧪 Expanded Testing Suite: A more comprehensive testing framework is being extended to also cover frontend scenarios.
  • 🧠 Enhanced Learning Resources: More example dataflows and revised documentation are being created.
  • 🧩 Modular Node Architecture: A refactor is in progress to support a plug-in architecture, allowing programmers to define and register custom dataflow nodes more easily.
  • 📓 Notebook Interoperability: We are building support for importing/exporting dataflows to and from Jupyter notebooks.
  • 🧾 Advanced Provenance Tracking: We are improving how Curio tracks and visualizes the history of user actions.
  • 📋 Improved Logging System: Curio's logging is being updated with clearer diagnostics, better error tracking, and improved debugging support.

Overview

Curio: A Dataflow-Based Framework for Collaborative Urban Visual Analytics
Gustavo Moreira, Maryam Hosseini, Carolina Veiga, Lucas Alexandre, Nico Colaninno, Daniel de Oliveira, Nivan Ferreira, Marcos Lage, Fabio Miranda
IEEE Transactions on Visualization and Computer Graphics ( Volume: 31, Issue: 1, January 2025)
Paper: [DOI], [Arxiv]

Curio Use Cases

This project is part of the Urban Toolkit ecosystem, which includes Curio and UTK. Curio is a framework for collaborative urban visual analytics that uses a dataflow model with multiple abstraction levels to facilitate collaboration across the design and implementation of visual analytics components. UTK is a flexible and extensible visualization framework that enables the easy authoring of web-based visualizations through a new high-level grammar specifically built with common urban use cases in mind.

Key features

  • Provenance-aware dataflow
  • Modularized and collaborative visual analytics
  • Support for 2D and 3D maps
  • Linked data-driven interactions
  • Integration with UTK and Vega-Lite

Usage and contributions

For detailed instructions on how to use the project, please see the usage document. A set of examples can be found here.

🚀 Curio now supports a Docker-based setup for easier installation and orchestration of all components. See the usage guide for instructions on running Curio with Docker.

If you'd like to contribute, see the contributions document for guidelines. For questions, join UTK's Discord server.


Citation

@ARTICLE{moreira2025curio,
  author={Moreira, Gustavo and Hosseini, Maryam and Veiga, Carolina and Alexandre, Lucas and Colaninno, Nicola and de Oliveira, Daniel and Ferreira, Nivan and Lage, Marcos and Miranda, Fabio},
  journal={IEEE Transactions on Visualization and Computer Graphics}, 
  title={Curio: A Dataflow-Based Framework for Collaborative Urban Visual Analytics}, 
  year={2025},
  volume={31},
  number={1},
  pages={1224-1234},
  doi={10.1109/TVCG.2024.3456353}
}

License

Curio is MIT Licensed. Free for both commercial and research use.

Acknowledgements

Curio and the Urban Toolkit have been supported by the National Science Foundation (NSF) (Awards #2320261, #2330565, and #2411223), Discovery Partners Institute (DPI), and IDOT.

Metadata

Release files for utk-curio 0.5.8.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for utk-curio 0.5.8.1
File Size Uploaded Provenance
utk-curio-0.5.8.1.tar.gz 30.6 MB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for utk-curio 0.5.8.1
File Interpreter ABI Platform
utk_curio-0.5.8.1-py3-none-any.whl Python 3 none any Details

Total release size: 61.6 MB

Release files / utk-curio-0.5.8.1.tar.gz

Download URL utk-curio-0.5.8.1.tar.gz
Size 30.6 MB
Tags Source
SHA-256 checksum
How to use checksums
f6c21d5d8325f0e1071b5f0596cacbbcb93a4f9960a37060f0f20cd7c151ccfe
BLAKE2b-256 checksum
How to use checksums
3a31fcb96266fa1aa28fe050ddd25785a3fa28ede5538aea9c5cf0a156170e62
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.13

Release files / utk_curio-0.5.8.1-py3-none-any.whl

Download URL utk_curio-0.5.8.1-py3-none-any.whl
Size 31.0 MB
Tags Python 3
SHA-256 checksum
How to use checksums
f3f3c29666868b50f36b02b1349441fcd84b387f999ab1a1bb24c054d268ca01
BLAKE2b-256 checksum
How to use checksums
4ea882d8ffef87d28f4f39678790368729e6155916b4c74289824d8fa1e45009
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.13

Security for utk-curio 0.5.8.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page