VA-framework

A reusable framework for building visual analytics workspaces

VA Framework is my attempt to build a reusable foundation for visual analytics systems, rather than another one-off demo. The project focuses on the layers that usually get rebuilt from scratch in research prototypes: the workspace shell, the query contract, the execution path, and the visualization primitives. Instead of treating a visualization as an isolated figure, the framework treats it as part of a broader analytic environment.

The current line has grown from an early Vue + Flask starter into a more structured monorepo with a React/Next.js frontend, a FastAPI backend, shared data contracts, and reusable VA components. This makes it much easier to prototype new techniques, compare multiple views, and evolve the system toward richer analytical workflows.

What it looks like today

Today the framework opens as a graph workbench rather than a static landing page. A user can switch datasets and analytical techniques inside one coordinated workspace, with a large central analysis surface and a supporting rail for metrics, summaries, and controls. The same data can be read through force-directed, matrix, tree, or multivariate views without leaving the surrounding shell.

That makes the project useful both as a working research prototype and as infrastructure for future VA systems. It is not only about rendering graphs; it is about organizing the logic around data loading, local vs. remote execution, state coordination, and technique-specific interaction in a way that can be extended.

Why this framework is useful

  • It provides a shared workspace shell for visual analytics experimentation.
  • It keeps frontend views and backend services aligned through shared contracts.
  • It supports both local and remote execution paths for different workloads.
  • It exposes reusable visualization primitives instead of burying logic inside one app.
  • It creates a cleaner base for adding new datasets, techniques, and analytical interactions.

Current structure

  • apps/web: the React/Next.js analytical workspace
  • apps/api: the FastAPI service for datasets, queries, and background jobs
  • packages/contracts: shared dataset and query schemas
  • packages/view-system: coordination and workspace state
  • packages/vis-core: reusable visualization primitives

Contribution directions

The project is open sourced because I want it to become a productive base for further research and engineering work. Good contribution areas include:

  • adding new datasets with explicit metadata and query paths
  • implementing new analytical techniques on top of the shared workbench
  • extending the query contract for richer tasks
  • improving view coordination, summaries, and analytical guidance
  • strengthening the path toward spatio-temporal and multi-view analytics

The source code is available on GitHub. If you are interested in contributing, collaborating, or building on top of the framework, feel free to reach out.