Skip to content

Commit ac7cf21

Browse files
authored
Merge pull request #6 from Fluidize-Inc/dev
Dev
2 parents 30cd9c6 + 46b455f commit ac7cf21

56 files changed

Lines changed: 2922 additions & 1138 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

README.md

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@
99

1010
**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.
1111

12-
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.
12+
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.
13+
14+
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.
1315

1416
## Quick Start
1517

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

59+
5760
## The Solution
5861

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

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

70+
6771
## Architecture
6872

73+
At Fluidize, we believe strong organization leads to better reproducibility and scalability.
74+
75+
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.
76+
77+
6978
### Nodes
70-
The foundational building blocks of Fluidize. Each node encapsulates a computational unit with:
79+
Nodes are the foundational building blocks of simulation pipelines. Each node represents a computational unit with:
7180

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

96+
8797
### Projects
88-
The project currently hosts a simple layer for composing and managing multiple nodes:
98+
99+
Projects store a simple data layer for managing individual modules within a pipeline.
89100

90101
| File | Purpose |
91102
|------|---------|
92-
| `graph.json` | Node connectivity and data flow definition |
103+
| `graph.json` | Node (scientific software) and edge (data flow) definitions |
93104
| `metadata.yaml` | Project description and configuration |
94105

95106

96-
Docker engine is used for local execution. With API calls, we use the Kubernetes engine with Argo Workflow Manager.
97-
107+
### Runs
98108

109+
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.
99110

100111

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

121+
110122
## Contributing
111123

112-
We would love contributions and collaborations! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
124+
We would love to collaborate with you! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
125+
126+
Also - we would love to help streamline your pipeline! Please reach out to us at [founders@fluidize.ai](mailto:founders@fluidize.ai).
127+
113128

114-
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).
129+
## Vision and Roadmap
115130

116-
## Roadmap
131+
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.
117132

118-
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:
133+
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:
119134

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

123138

124139
## License
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,27 @@
1-
# Fluidize Client
1+
# Client Module
22

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

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

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

9-
## Client API
10-
11-
### FluidizeClient
129
::: fluidize.client.FluidizeClient
1310
options:
1411
show_source: false
12+
heading_level: 3
13+
show_root_heading: true
1514
members:
1615
- mode
1716
- adapters
1817
- projects
1918
- runs
2019

21-
### FluidizeConfig
2220
::: fluidize.config.FluidizeConfig
2321
options:
2422
show_source: false
23+
heading_level: 3
24+
show_root_heading: true
2525
members:
2626
- is_local_mode
2727
- is_api_mode

docs/core-modules/execute.md

Lines changed: 0 additions & 25 deletions
This file was deleted.

docs/core-modules/graph.md

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
# Graph Module
22

3-
## Graph Management
4-
5-
### ProjectGraph
6-
::: fluidize.managers.project_graph.ProjectGraph
3+
## Graph Manager
4+
::: fluidize.managers.graph.GraphManager
75
options:
86
show_source: false
7+
heading_level: 3
8+
show_root_heading: true
99
members:
1010
- get
1111
- add_node
@@ -14,26 +14,34 @@
1414
- add_edge
1515
- delete_edge
1616

17-
## Graph Processing
18-
19-
### GraphProcessor
17+
## Graph Processor
2018
::: fluidize.core.modules.graph.GraphProcessor
2119
options:
2220
show_source: false
21+
heading_level: 3
22+
show_root_heading: true
2323

2424
## Graph Types
2525

26-
### GraphData
27-
::: fluidize.core.types.GraphData
26+
::: fluidize.core.types.graph.GraphData
2827
options:
29-
show_source: false
28+
heading_level: 3
29+
show_root_heading: true
30+
extra:
31+
show_attributes: true
32+
3033

31-
### GraphNode
32-
::: fluidize.core.types.GraphNode
34+
::: fluidize.core.types.graph.GraphNode
3335
options:
34-
show_source: false
36+
heading_level: 3
37+
show_root_heading: true
38+
extra:
39+
show_attributes: true
40+
3541

36-
### GraphEdge
37-
::: fluidize.core.types.GraphEdge
42+
::: fluidize.core.types.graph.GraphEdge
3843
options:
39-
show_source: false
44+
heading_level: 3
45+
show_root_heading: true
46+
extra:
47+
show_attributes: true

docs/core-modules/index.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# Core Modules
2+
3+
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.
4+
5+
## [Client](client.md)
6+
7+
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.
8+
9+
## [Projects](projects.md)
10+
11+
The **Projects** module provides tools for managing project lifecycles:
12+
13+
- [**Registry Manager**](projects.md#fluidize.managers.registry.RegistryManager):
14+
Handles the user’s complete project registry, with functionality to create, edit, and delete projects.
15+
16+
- [**Project Manager**](projects.md#fluidize.managers.project.ProjectManager):
17+
Focuses on individual projects, managing the project graph, nodes, and runs, and supporting execution of project-specific workflows.
18+
19+
## [Graph](graph.md)
20+
21+
The **Graph** module provides tools for managing the project graph, which is a representation of the simulation pipeline.
22+
23+
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:
24+
25+
- [**Graph Manager**](graph.md#fluidize.managers.graph.GraphManager):
26+
Manages the project graph, and provides high level functionality to create, edit, and delete nodes and edges.
27+
28+
- [**Graph Processor**](graph.md#fluidize.managers.graph.graph_processor.GraphProcessor):
29+
Manages specific operations on the graph data structure within the local filesystem.
30+
31+
## [Node](node.md)
32+
33+
The **Node** module provides tools for managing the metadata, properties, and parameters of individual nodes within a project.
34+
35+
## [Run](run.md)
36+
37+
The **Run** module provides tools for managing simulation pipeline runs within a project:
38+
39+
- [**Runs Manager**](run.md#fluidize.managers.run.RunsManager):
40+
Manages the high level execution of runs and retrieving run status.
41+
42+
- [**Project Runner**](run.md#fluidize.core.modules.run.project.ProjectRunner):
43+
Manages the specific execution details of a project pipeline, including environment preparation and node execution order.

docs/core-modules/node.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Node Module
2+
3+
::: fluidize.managers.node.NodeManager
4+
options:
5+
show_source: false
6+
heading_level: 3
7+
show_root_heading: true

docs/core-modules/projects.md

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
# Projects Module
22

3-
## Project Management
4-
5-
### Projects Manager
6-
::: fluidize.managers.projects.Projects
3+
## Registry
4+
::: fluidize.managers.registry.RegistryManager
75
options:
86
show_source: false
7+
heading_level: 3
8+
show_root_heading: true
99

10-
### Project Class
11-
::: fluidize.managers.project_manager.Project
10+
## Project
11+
::: fluidize.managers.project.ProjectManager
1212
options:
1313
show_source: false
14+
heading_level: 3
15+
show_root_heading: true

docs/core-modules/run.md

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,27 @@
22

33
## Run Management
44

5-
### ProjectRuns
6-
::: fluidize.managers.project_runs.ProjectRuns
5+
::: fluidize.managers.runs.RunsManager
76
options:
87
show_source: false
8+
heading_level: 3
9+
show_root_heading: true
910
members:
1011
- run_flow
1112
- list
1213
- get_status
1314

1415
## Run Execution
1516

16-
### RunJob
1717
::: fluidize.core.modules.run.RunJob
1818
options:
1919
show_source: false
20+
heading_level: 3
21+
show_signature: false
22+
show_root_heading: true
2023

21-
### ProjectRunner
22-
::: fluidize.core.modules.run.ProjectRunner
24+
::: fluidize.core.modules.run.project.ProjectRunner
2325
options:
2426
show_source: false
27+
heading_level: 3
28+
show_root_heading: true

docs/getting-started/projects-nodes.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

docs/getting-started/quickstart.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# Getting Started

0 commit comments

Comments
 (0)