Skip to content

Commit d133dd7

Browse files
authored
Merge pull request #9 from Fluidize-Inc/revert-8-add-node-features
Revert "Add node features"
2 parents 9f6f811 + cdfef1d commit d133dd7

41 files changed

Lines changed: 597 additions & 3314 deletions

Some content is hidden

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

.github/workflows/on-release-main.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,6 @@ jobs:
5555
deploy-docs:
5656
needs: publish
5757
runs-on: ubuntu-latest
58-
permissions:
59-
contents: write
6058
steps:
6159
- name: Check out
6260
uses: actions/checkout@v4

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
### An Open Framework for AI-Driven Scientific Computing
99

10-
**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.
10+
**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

1212
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.
1313

@@ -43,7 +43,7 @@ make install
4343

4444
## Run Examples
4545

46-
Example projects are located in this folder: [examples/](examples/). There you can find an [Jupyter Notebook](examples/demo.ipynb) of a simple simulation
46+
Example projects are located in this folder: [example/](example/)
4747

4848

4949
## The Problem

README_DRAFT.md

Lines changed: 186 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,186 @@
1+
# Fluidize
2+
3+
[![Python](https://img.shields.io/badge/python-3.9%2B-blue?style=for-the-badge&logo=python&logoColor=white)](https://python.org)
4+
[![PyPI](https://img.shields.io/pypi/v/fluidize?style=for-the-badge&logo=pypi&logoColor=white)](https://pypi.org/project/fluidize/)
5+
[![License](https://img.shields.io/github/license/Fluidize-Inc/fluidize-python?style=for-the-badge)](LICENSE)
6+
[![Documentation](https://img.shields.io/badge/docs-available-brightgreen?style=for-the-badge&logo=gitbook&logoColor=white)](https://Fluidize-Inc.github.io/fluidize-python/)
7+
8+
9+
**Open Foundation for AI-Driven Scientific Computing**
10+
11+
Fluidize library provides the foundational types and abstractions for building and executing AI-orchestrated scientific computing pipelines. This allows agents to automatically orchestrate, configure, and iterate through computational pipeline with minimal prompting.
12+
13+
Fluidize is a Python library that establishes a standard for AI-orchestrated scientific computing. With this common framework, agents can automatically build, configure, and run computational pipelines across different domains and platforms.
14+
15+
16+
**The Problem**
17+
18+
Students and researchers face significant barriers while translating their ideas into production ready pipelines:
19+
20+
-
21+
- Time spent on software engineering instead of research
22+
23+
24+
25+
**Solution**
26+
27+
We devised a wrapper
28+
29+
30+
Here are the building blocks.
31+
32+
33+
Nodes: These are the foundational building blocks for Fluidize. It comes with the minimal set of information to run the simulation with no required modification for the source code itself. It is modular and easily easily extensible.
34+
35+
- Consistent and predictable input and output path for all simulations
36+
- An arbitrary complicated scientific computing software to be be run with a single API endpoint.
37+
38+
39+
40+
Here are the information specified on the nodes (More Could be put in documentation?)
41+
42+
- Properties.yaml - This tells the container image link, the working directory for the simulation running in the container, and where the output path is.
43+
44+
- Metadata.yaml - This provides more context on what the node is, including description, version, authors, and the repository URL it came from.
45+
46+
- Dockerfile - This provides the setup instructions for simulation runs
47+
48+
- Parameters.json - This is where you put your parameters you would like to tune during your experiments.
49+
50+
- main.sh - This is the script that executes your source code.
51+
52+
- source/ - This is where the source code is.
53+
54+
The good news is that we can automate the generation of these nodes.
55+
56+
Projects: Projects are a way of orchestrating nodes.
57+
58+
- graph.json - Graph specifiying how nodes are connected. It allows orchestration of generated nodes.
59+
- metadata.yaml - This provides more context on what the project does.
60+
61+
More information on each of these files can be found in the documentation.
62+
63+
64+
65+
66+
67+
68+
69+
70+
71+
72+
73+
74+
---
75+
76+
## Getting Started
77+
78+
### Requirements
79+
80+
- Python 3.9+
81+
- Docker Desktop (for local execution)
82+
Download and install Docker Desktop (version 20.10+) from https://docs.docker.com/desktop/.
83+
After installation, verify with:
84+
```bash
85+
docker --version
86+
```
87+
Ensure the Docker daemon is running before using Fluidize.
88+
89+
### Install from PyPI
90+
91+
```bash
92+
pip install fluidize
93+
```
94+
95+
### Development Installation
96+
97+
```bash
98+
git clone https://github.com/Fluidize-Inc/fluidize-python.git
99+
cd fluidize-python
100+
make install
101+
```
102+
103+
---
104+
105+
### Basic Usage
106+
107+
```python
108+
from fluidize import FluidizeClient
109+
110+
client = FluidizeClient()
111+
112+
# Create a new project
113+
project = client.projects.create(name="My Project")
114+
115+
# Load a project
116+
loaded_project = client.projects.get(project_id=project.id)
117+
118+
# Run Project
119+
loaded_project.run.run_flow()
120+
121+
```
122+
123+
---
124+
125+
126+
## 📚 Documentation
127+
128+
- **[API Documentation](https://Fluidize-Inc.github.io/fluidize-python/)** - Complete API reference
129+
- **[Interactive Demo](utils/fluidize_demo.ipynb)** - Jupyter notebook walkthrough
130+
- **[Examples](examples/)** - Examples
131+
132+
---
133+
134+
## 🤝 Contributing
135+
136+
We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
137+
138+
### Quick Contributing Steps
139+
140+
1. Fork the repository
141+
2. Create a feature branch: `git checkout -b feature/amazing-feature`
142+
3. Run quality checks: `make check`
143+
4. Commit changes: `git commit -m 'Add amazing feature'`
144+
5. Push to branch: `git push origin feature/amazing-feature`
145+
6. Open a Pull Request
146+
147+
148+
We are looking to collaborate with researchers who are interested in ...
149+
150+
---
151+
152+
## Roadmap
153+
154+
-
155+
156+
157+
---
158+
159+
## 📄 License
160+
161+
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
162+
163+
---
164+
165+
## Contact
166+
167+
Henry Bae - henry@fluidize.ai
168+
169+
170+
171+
---
172+
173+
What should the documentation contain:
174+
175+
- Overview of Fluidize Project
176+
177+
178+
- Overview of Fluidize Node
179+
- Overview of Fluidize Workflow
180+
181+
---
182+
183+
<p align="center">
184+
<strong>Built with ❤️ by the Fluidize team</strong><br>
185+
<em> </em>
186+
</p>

README_OLD.md

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
# fluidize-python
2+
3+
[![Release](https://img.shields.io/github/v/release/Fluidize-Inc/fluidize-python)](https://img.shields.io/github/v/release/Fluidize-Inc/fluidize-python)
4+
[![Build status](https://img.shields.io/github/actions/workflow/status/Fluidize-Inc/fluidize-python/main.yml?branch=main)](https://github.com/Fluidize-Inc/fluidize-python/actions/workflows/main.yml?query=branch%3Amain)
5+
[![codecov](https://codecov.io/gh/Fluidize-Inc/fluidize-python/branch/main/graph/badge.svg)](https://codecov.io/gh/Fluidize-Inc/fluidize-python)
6+
[![Commit activity](https://img.shields.io/github/commit-activity/m/Fluidize-Inc/fluidize-python)](https://img.shields.io/github/commit-activity/m/Fluidize-Inc/fluidize-python)
7+
[![License](https://img.shields.io/github/license/Fluidize-Inc/fluidize-python)](https://img.shields.io/github/license/Fluidize-Inc/fluidize-python)
8+
9+
Python package for automatic generation of scientific computing software pipelines.
10+
11+
- **Github repository**: <https://github.com/Fluidize-Inc/fluidize-python/>
12+
- **Documentation** <https://Fluidize-Inc.github.io/fluidize-python/>
13+
14+
## Getting started with your project
15+
16+
### 1. Create a New Repository
17+
18+
First, create a repository on GitHub with the same name as this project, and then run the following commands:
19+
20+
```bash
21+
git init -b main
22+
git add .
23+
git commit -m "init commit"
24+
git remote add origin git@github.com:Fluidize-Inc/fluidize-python.git
25+
git push -u origin main
26+
```
27+
28+
### 2. Set Up Your Development Environment
29+
30+
Then, install the environment and the pre-commit hooks with
31+
32+
```bash
33+
make install
34+
```
35+
36+
This will also generate your `uv.lock` file
37+
38+
### 3. Run the pre-commit hooks
39+
40+
Initially, the CI/CD pipeline might be failing due to formatting issues. To resolve those run:
41+
42+
```bash
43+
uv run pre-commit run -a
44+
```
45+
46+
### 4. Commit the changes
47+
48+
Lastly, commit the changes made by the two steps above to your repository.
49+
50+
```bash
51+
git add .
52+
git commit -m 'Fix formatting issues'
53+
git push origin main
54+
```
55+
56+
You are now ready to start development on your project!
57+
The CI/CD pipeline will be triggered when you open a pull request, merge to main, or when you create a new release.
58+
59+
To finalize the set-up for publishing to PyPI, see [here](https://fpgmaas.github.io/cookiecutter-uv/features/publishing/#set-up-for-pypi).
60+
For activating the automatic documentation with MkDocs, see [here](https://fpgmaas.github.io/cookiecutter-uv/features/mkdocs/#enabling-the-documentation-on-github).
61+
To enable the code coverage reports, see [here](https://fpgmaas.github.io/cookiecutter-uv/features/codecov/).
62+
63+
## Releasing a new version
64+
65+
- Create an API Token on [PyPI](https://pypi.org/).
66+
- Add the API Token to your projects secrets with the name `PYPI_TOKEN` by visiting [this page](https://github.com/Fluidize-Inc/fluidize-python/settings/secrets/actions/new).
67+
- Create a [new release](https://github.com/Fluidize-Inc/fluidize-python/releases/new) on Github.
68+
- Create a new tag in the form `*.*.*`.
69+
70+
For more details, see [here](https://fpgmaas.github.io/cookiecutter-uv/features/cicd/#how-to-trigger-a-release).
71+
72+
---
73+
74+
Repository initiated with [fpgmaas/cookiecutter-uv](https://github.com/fpgmaas/cookiecutter-uv).

0 commit comments

Comments
 (0)