Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 27 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,9 @@

**fluidize-python** is a library for building modular, reproducible scientific computing pipelines. It provides a unified interface to a wide range of physical simulation tools, eliminating the need to navigate the inconsistent, incomplete instructions that often vary from tool to tool.

This library marks our first step toward AI-orchestrated scientific computing. By standardizing tools and practices within our framework, AI agents can automatically build, configure, and execute computational pipelines across domains and simulation platforms. Our goal is to improve today’s simulation tools so AI can assist researchers and scientists in accelerating the pace of innovation and scientific discovery.
This library marks our first step toward AI-orchestrated scientific computing. By standardizing tools and practices within our framework, AI agents can automatically build, configure, and execute computational pipelines across domains and simulation platforms.

Our goal is to improve today’s simulation tools so AI can assist researchers and scientists in accelerating the pace of innovation and scientific discovery.

## Quick Start

Expand Down Expand Up @@ -54,6 +56,7 @@ Students and researchers face significant barriers when working with different s
- **Reproducibility issues** – Sharing and reproducing experiments is frequently cumbersome and error-prone.
- **Scaling friction** – Moving from a local prototype to a cloud environment or dedicated compute cluster can be slow and difficult.


## The Solution

Fluidize provides a standardized wrapper that turns complex scientific software into modular components. This makes it possible to:
Expand All @@ -64,10 +67,16 @@ Fluidize provides a standardized wrapper that turns complex scientific software

All of this works with **minimal or no changes** to the existing codebase, allowing our framework to scale effortlessly to any repository.


## Architecture

At Fluidize, we believe strong organization leads to better reproducibility and scalability.

We treat each simulation pipeline as an individual project. Within projects, each pipeline is treated as a DAG (directed acyclic graph), where nodes represent individual pieces of scientific software (e.g. inputs, solvers, visualization tools, etc.) and edges represent data flow between nodes.


### Nodes
The foundational building blocks of Fluidize. Each node encapsulates a computational unit with:
Nodes are the foundational building blocks of simulation pipelines. Each node represents a computational unit with:

| File | Purpose |
|------|---------|
Expand All @@ -84,18 +93,20 @@ The foundational building blocks of Fluidize. Each node encapsulates a computati
- No source code modification required
- Automated node generation support (Public launch soon)


### Projects
The project currently hosts a simple layer for composing and managing multiple nodes:

Projects store a simple data layer for managing individual modules within a pipeline.

| File | Purpose |
|------|---------|
| `graph.json` | Node connectivity and data flow definition |
| `graph.json` | Node (scientific software) and edge (data flow) definitions |
| `metadata.yaml` | Project description and configuration |


Docker engine is used for local execution. With API calls, we use the Kubernetes engine with Argo Workflow Manager.

### Runs

Pipelines can be executed both locally and on the cloud. Local execution is handled by Docker engine. Cloud execution is routed through our API, and uses the Kubernetes engine with Argo Workflow Manager.


## Documentation
Expand All @@ -107,18 +118,22 @@ Comprehensive documentation is available at [https://Fluidize-Inc.github.io/flui
- [Project Orchestration](https://Fluidize-Inc.github.io/fluidize-python/projects)
- [API Reference](https://Fluidize-Inc.github.io/fluidize-python/api)


## Contributing

We would love contributions and collaborations! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
We would love to collaborate with you! Please see our [Contributing Guide](CONTRIBUTING.md) for details.

Also - we would love to help streamline your pipeline! Please reach out to us at [founders@fluidize.ai](mailto:founders@fluidize.ai).


Also - we would love to help streamline your research pipeline! Please reach out at [henry@fluidize.ai](mailto:henry@fluidize.ai) or [henrybae@g.harvard.edu](mailto:henrybae@g.harvard.edu).
## Vision and Roadmap

## Roadmap
This is just the beginning of what we believe will be a really exciting new era for how we conduct research and make discoveries in science.

This is just the beginning of what we think is a really exciting new era for how we learn science and do research. We will be releasing the following tools built from this framework:
By standardizing tools, we hope to significantly increase the effectiveness of AI in research and discovery. Soon, we will be releasing the following tools built from this framework:

- **Fluidize Playground**: Automatically explore and build simulation pipelines with natural language.
- **Auto-Fluidize**: Automatically convert obscure scientific software to run anywhere
- **Auto-Fluidize**: Automatically convert any scientific software to run anywhere with our framework.
- **Fluidize AI Playground**: Explore and build simulation pipelines with natural language.


## License
Expand Down
10 changes: 5 additions & 5 deletions docs/getting-started/client.md → docs/core-modules/client.md
Original file line number Diff line number Diff line change
@@ -1,27 +1,27 @@
# Fluidize Client
# Client Module

The Fluidize Client is the primary interface to create and edit projects. There are two interfaces for this, with more on the way.

- **Local Mode**: Works with your local device, uses Docker to sequentially execute nodes.

- **API Mode**: Runs on Fluidize API to manage projects and workflows in the cloud.

## Client API

### FluidizeClient
::: fluidize.client.FluidizeClient
options:
show_source: false
heading_level: 3
show_root_heading: true
members:
- mode
- adapters
- projects
- runs

### FluidizeConfig
::: fluidize.config.FluidizeConfig
options:
show_source: false
heading_level: 3
show_root_heading: true
members:
- is_local_mode
- is_api_mode
25 changes: 0 additions & 25 deletions docs/core-modules/execute.md

This file was deleted.

40 changes: 24 additions & 16 deletions docs/core-modules/graph.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# Graph Module

## Graph Management

### ProjectGraph
::: fluidize.managers.project_graph.ProjectGraph
## Graph Manager
::: fluidize.managers.graph.GraphManager
options:
show_source: false
heading_level: 3
show_root_heading: true
members:
- get
- add_node
Expand All @@ -14,26 +14,34 @@
- add_edge
- delete_edge

## Graph Processing

### GraphProcessor
## Graph Processor
::: fluidize.core.modules.graph.GraphProcessor
options:
show_source: false
heading_level: 3
show_root_heading: true

## Graph Types

### GraphData
::: fluidize.core.types.GraphData
::: fluidize.core.types.graph.GraphData
options:
show_source: false
heading_level: 3
show_root_heading: true
extra:
show_attributes: true


### GraphNode
::: fluidize.core.types.GraphNode
::: fluidize.core.types.graph.GraphNode
options:
show_source: false
heading_level: 3
show_root_heading: true
extra:
show_attributes: true


### GraphEdge
::: fluidize.core.types.GraphEdge
::: fluidize.core.types.graph.GraphEdge
options:
show_source: false
heading_level: 3
show_root_heading: true
extra:
show_attributes: true
43 changes: 43 additions & 0 deletions docs/core-modules/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Core Modules

The Fluidize library is composed of a set of core modules that provide a high-level interface for managing Fluidize resources. These modules are designed to be used together to build and execute scientific computing pipelines.

## [Client](client.md)

The **Fluidize Client** provides a unified, high-level interface for managing Fluidize resources in both local and cloud API modes. It serves as the primary entry point for creating and running pipelines across these environments.

## [Projects](projects.md)

The **Projects** module provides tools for managing project lifecycles:

- [**Registry Manager**](projects.md#fluidize.managers.registry.RegistryManager):
Handles the user’s complete project registry, with functionality to create, edit, and delete projects.

- [**Project Manager**](projects.md#fluidize.managers.project.ProjectManager):
Focuses on individual projects, managing the project graph, nodes, and runs, and supporting execution of project-specific workflows.

## [Graph](graph.md)

The **Graph** module provides tools for managing the project graph, which is a representation of the simulation pipeline.

In a Fluidize project, pipelines are represented as a directed acyclic graph (DAG) where each node represents a module simulation and each edge represents the flow of data between nodes:

- [**Graph Manager**](graph.md#fluidize.managers.graph.GraphManager):
Manages the project graph, and provides high level functionality to create, edit, and delete nodes and edges.

- [**Graph Processor**](graph.md#fluidize.managers.graph.graph_processor.GraphProcessor):
Manages specific operations on the graph data structure within the local filesystem.

## [Node](node.md)

The **Node** module provides tools for managing the metadata, properties, and parameters of individual nodes within a project.

## [Run](run.md)

The **Run** module provides tools for managing simulation pipeline runs within a project:

- [**Runs Manager**](run.md#fluidize.managers.run.RunsManager):
Manages the high level execution of runs and retrieving run status.

- [**Project Runner**](run.md#fluidize.core.modules.run.project.ProjectRunner):
Manages the specific execution details of a project pipeline, including environment preparation and node execution order.
7 changes: 7 additions & 0 deletions docs/core-modules/node.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Node Module

::: fluidize.managers.node.NodeManager
options:
show_source: false
heading_level: 3
show_root_heading: true
14 changes: 8 additions & 6 deletions docs/core-modules/projects.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
# Projects Module

## Project Management

### Projects Manager
::: fluidize.managers.projects.Projects
## Registry
::: fluidize.managers.registry.RegistryManager
options:
show_source: false
heading_level: 3
show_root_heading: true

### Project Class
::: fluidize.managers.project_manager.Project
## Project
::: fluidize.managers.project.ProjectManager
options:
show_source: false
heading_level: 3
show_root_heading: true
14 changes: 9 additions & 5 deletions docs/core-modules/run.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,27 @@

## Run Management

### ProjectRuns
::: fluidize.managers.project_runs.ProjectRuns
::: fluidize.managers.runs.RunsManager
options:
show_source: false
heading_level: 3
show_root_heading: true
members:
- run_flow
- list
- get_status

## Run Execution

### RunJob
::: fluidize.core.modules.run.RunJob
options:
show_source: false
heading_level: 3
show_signature: false
show_root_heading: true

### ProjectRunner
::: fluidize.core.modules.run.ProjectRunner
::: fluidize.core.modules.run.project.ProjectRunner
options:
show_source: false
heading_level: 3
show_root_heading: true
5 changes: 0 additions & 5 deletions docs/getting-started/projects-nodes.md

This file was deleted.

1 change: 1 addition & 0 deletions docs/getting-started/quickstart.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Getting Started
Loading