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
2 changes: 0 additions & 2 deletions .github/workflows/on-release-main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,6 @@ jobs:
deploy-docs:
needs: publish
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Check out
uses: actions/checkout@v4
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

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

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

Expand Down Expand Up @@ -43,7 +43,7 @@ make install

## Run Examples

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


## The Problem
Expand Down
186 changes: 186 additions & 0 deletions README_DRAFT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,186 @@
# Fluidize

[![Python](https://img.shields.io/badge/python-3.9%2B-blue?style=for-the-badge&logo=python&logoColor=white)](https://python.org)
[![PyPI](https://img.shields.io/pypi/v/fluidize?style=for-the-badge&logo=pypi&logoColor=white)](https://pypi.org/project/fluidize/)
[![License](https://img.shields.io/github/license/Fluidize-Inc/fluidize-python?style=for-the-badge)](LICENSE)
[![Documentation](https://img.shields.io/badge/docs-available-brightgreen?style=for-the-badge&logo=gitbook&logoColor=white)](https://Fluidize-Inc.github.io/fluidize-python/)


**Open Foundation for AI-Driven Scientific Computing**

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.

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.


**The Problem**

Students and researchers face significant barriers while translating their ideas into production ready pipelines:

-
- Time spent on software engineering instead of research



**Solution**

We devised a wrapper


Here are the building blocks.


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.

- Consistent and predictable input and output path for all simulations
- An arbitrary complicated scientific computing software to be be run with a single API endpoint.



Here are the information specified on the nodes (More Could be put in documentation?)

- Properties.yaml - This tells the container image link, the working directory for the simulation running in the container, and where the output path is.

- Metadata.yaml - This provides more context on what the node is, including description, version, authors, and the repository URL it came from.

- Dockerfile - This provides the setup instructions for simulation runs

- Parameters.json - This is where you put your parameters you would like to tune during your experiments.

- main.sh - This is the script that executes your source code.

- source/ - This is where the source code is.

The good news is that we can automate the generation of these nodes.

Projects: Projects are a way of orchestrating nodes.

- graph.json - Graph specifiying how nodes are connected. It allows orchestration of generated nodes.
- metadata.yaml - This provides more context on what the project does.

More information on each of these files can be found in the documentation.












---

## Getting Started

### Requirements

- Python 3.9+
- Docker Desktop (for local execution)
Download and install Docker Desktop (version 20.10+) from https://docs.docker.com/desktop/.
After installation, verify with:
```bash
docker --version
```
Ensure the Docker daemon is running before using Fluidize.

### Install from PyPI

```bash
pip install fluidize
```

### Development Installation

```bash
git clone https://github.com/Fluidize-Inc/fluidize-python.git
cd fluidize-python
make install
```

---

### Basic Usage

```python
from fluidize import FluidizeClient

client = FluidizeClient()

# Create a new project
project = client.projects.create(name="My Project")

# Load a project
loaded_project = client.projects.get(project_id=project.id)

# Run Project
loaded_project.run.run_flow()

```

---


## 📚 Documentation

- **[API Documentation](https://Fluidize-Inc.github.io/fluidize-python/)** - Complete API reference
- **[Interactive Demo](utils/fluidize_demo.ipynb)** - Jupyter notebook walkthrough
- **[Examples](examples/)** - Examples

---

## 🤝 Contributing

We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.

### Quick Contributing Steps

1. Fork the repository
2. Create a feature branch: `git checkout -b feature/amazing-feature`
3. Run quality checks: `make check`
4. Commit changes: `git commit -m 'Add amazing feature'`
5. Push to branch: `git push origin feature/amazing-feature`
6. Open a Pull Request


We are looking to collaborate with researchers who are interested in ...

---

## Roadmap

-


---

## 📄 License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

---

## Contact

Henry Bae - henry@fluidize.ai



---

What should the documentation contain:

- Overview of Fluidize Project


- Overview of Fluidize Node
- Overview of Fluidize Workflow

---

<p align="center">
<strong>Built with ❤️ by the Fluidize team</strong><br>
<em> </em>
</p>
74 changes: 74 additions & 0 deletions README_OLD.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# fluidize-python

[![Release](https://img.shields.io/github/v/release/Fluidize-Inc/fluidize-python)](https://img.shields.io/github/v/release/Fluidize-Inc/fluidize-python)
[![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)
[![codecov](https://codecov.io/gh/Fluidize-Inc/fluidize-python/branch/main/graph/badge.svg)](https://codecov.io/gh/Fluidize-Inc/fluidize-python)
[![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)
[![License](https://img.shields.io/github/license/Fluidize-Inc/fluidize-python)](https://img.shields.io/github/license/Fluidize-Inc/fluidize-python)

Python package for automatic generation of scientific computing software pipelines.

- **Github repository**: <https://github.com/Fluidize-Inc/fluidize-python/>
- **Documentation** <https://Fluidize-Inc.github.io/fluidize-python/>

## Getting started with your project

### 1. Create a New Repository

First, create a repository on GitHub with the same name as this project, and then run the following commands:

```bash
git init -b main
git add .
git commit -m "init commit"
git remote add origin git@github.com:Fluidize-Inc/fluidize-python.git
git push -u origin main
```

### 2. Set Up Your Development Environment

Then, install the environment and the pre-commit hooks with

```bash
make install
```

This will also generate your `uv.lock` file

### 3. Run the pre-commit hooks

Initially, the CI/CD pipeline might be failing due to formatting issues. To resolve those run:

```bash
uv run pre-commit run -a
```

### 4. Commit the changes

Lastly, commit the changes made by the two steps above to your repository.

```bash
git add .
git commit -m 'Fix formatting issues'
git push origin main
```

You are now ready to start development on your project!
The CI/CD pipeline will be triggered when you open a pull request, merge to main, or when you create a new release.

To finalize the set-up for publishing to PyPI, see [here](https://fpgmaas.github.io/cookiecutter-uv/features/publishing/#set-up-for-pypi).
For activating the automatic documentation with MkDocs, see [here](https://fpgmaas.github.io/cookiecutter-uv/features/mkdocs/#enabling-the-documentation-on-github).
To enable the code coverage reports, see [here](https://fpgmaas.github.io/cookiecutter-uv/features/codecov/).

## Releasing a new version

- Create an API Token on [PyPI](https://pypi.org/).
- 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).
- Create a [new release](https://github.com/Fluidize-Inc/fluidize-python/releases/new) on Github.
- Create a new tag in the form `*.*.*`.

For more details, see [here](https://fpgmaas.github.io/cookiecutter-uv/features/cicd/#how-to-trigger-a-release).

---

Repository initiated with [fpgmaas/cookiecutter-uv](https://github.com/fpgmaas/cookiecutter-uv).
Loading