Skip to content

Commit dd7b4dc

Browse files
authored
Merge pull request #1 from Fluidize-Inc/dev
Fluidize Library Initial Main Push
2 parents 827c4ba + 373d001 commit dd7b4dc

191 files changed

Lines changed: 20521 additions & 107 deletions

File tree

Some content is hidden

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

.gitignore

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,3 +209,16 @@ cython_debug/
209209
marimo/_static/
210210
marimo/_lsp/
211211
__marimo__/
212+
213+
# Claude
214+
.claude
215+
CLAUDE.md
216+
217+
# DS_Store
218+
.DS_Store
219+
220+
# MagicMock
221+
MagicMock/*
222+
223+
# Dev
224+
.dev/

CONTRIBUTING.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ You can contribute in many ways:
99

1010
## Report Bugs
1111

12-
Report bugs at https://github.com/fluidize_inc/fluidize-python/issues
12+
Report bugs at https://github.com/Fluidize-Inc/fluidize-python/issues
1313

1414
If you are reporting a bug, please include:
1515

@@ -33,7 +33,7 @@ fluidize-python could always use more documentation, whether as part of the offi
3333

3434
## Submit Feedback
3535

36-
The best way to send feedback is to file an issue at https://github.com/fluidize_inc/fluidize-python/issues.
36+
The best way to send feedback is to file an issue at https://github.com/Fluidize-Inc/fluidize-python/issues.
3737

3838
If you are proposing a new feature:
3939

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2025 Henry Bae
3+
Copyright (c) 2025 Fluidize
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

README.md

Lines changed: 99 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,74 +1,126 @@
1-
# fluidize-python
1+
# Fluidize
22

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)
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/)
87

9-
Python package for automatic generation of scientific computing software pipelines.
8+
### An Open Framework for AI-Driven Scientific Computing
109

11-
- **Github repository**: <https://github.com/fluidize_inc/fluidize-python/>
12-
- **Documentation** <https://fluidize_inc.github.io/fluidize-python/>
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.
1311

14-
## Getting started with your project
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.
1513

16-
### 1. Create a New Repository
14+
## Quick Start
1715

18-
First, create a repository on GitHub with the same name as this project, and then run the following commands:
16+
## Installation
1917

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-
```
18+
### Prerequesites:
19+
20+
- Python 3.9+
21+
- Docker Desktop (for local execution). Download and install Docker Desktop from https://docs.docker.com/desktop/.
22+
23+
After installation, verify with:
24+
```bash
25+
docker --version
26+
```
2727

28-
### 2. Set Up Your Development Environment
2928

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

30+
### From PyPI
3231
```bash
32+
pip install fluidize
33+
```
34+
35+
### From Source
36+
```bash
37+
git clone https://github.com/Fluidize-Inc/fluidize-python.git
38+
cd fluidize-python
3339
make install
3440
```
3541

36-
This will also generate your `uv.lock` file
42+
## Run Examples
3743

38-
### 3. Run the pre-commit hooks
44+
Example projects are located in this folder: [example/](example/)
3945

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

42-
```bash
43-
uv run pre-commit run -a
44-
```
47+
## The Problem
4548

46-
### 4. Commit the changes
49+
Students and researchers face significant barriers when working with different simulation tools:
4750

48-
Lastly, commit the changes made by the two steps above to your repository.
51+
- **Setup overhead** – Installing and configuring someone else’s research code can take an enormous amount of time.
52+
- **Diverse architectures** – Scientific software is built using a wide range of tools and architectures, each with its own complexities and quirks.
53+
- **Time drain** – Good software engineering practices are important, but in practice they often slow down the process of getting immediate results.
54+
- **Reproducibility issues** – Sharing and reproducing experiments is frequently cumbersome and error-prone.
55+
- **Scaling friction** – Moving from a local prototype to a cloud environment or dedicated compute cluster can be slow and difficult.
4956

50-
```bash
51-
git add .
52-
git commit -m 'Fix formatting issues'
53-
git push origin main
54-
```
57+
## The Solution
58+
59+
Fluidize provides a standardized wrapper that turns complex scientific software into modular components. This makes it possible to:
60+
61+
- **Expose a single API endpoint** for any scientific computing software—any language, any tool, any complexity.
62+
- **Easily connect** tools that were never designed to work together.
63+
- **Adopt consistent I/O patterns** across all simulations.
64+
65+
All of this works with **minimal or no changes** to the existing codebase, allowing our framework to scale effortlessly to any repository.
66+
67+
## Architecture
68+
69+
### Nodes
70+
The foundational building blocks of Fluidize. Each node encapsulates a computational unit with:
71+
72+
| File | Purpose |
73+
|------|---------|
74+
| `properties.yaml` | Container configuration, working directory, and output paths |
75+
| `metadata.yaml` | Node description, version, authors, and repository URL |
76+
| `Dockerfile` | Environment setup and dependency installation |
77+
| `parameters.json` | Tunable parameters for experiments |
78+
| `main.sh` | Execution script for the source code |
79+
| `source/` | Original scientific computing code |
80+
81+
**Key Features:**
82+
- Predictable input/output paths
83+
- Modular and extensible design
84+
- No source code modification required
85+
- Automated node generation support (Public launch soon)
86+
87+
### Projects
88+
The project currently hosts a simple layer for composing and managing multiple nodes:
89+
90+
| File | Purpose |
91+
|------|---------|
92+
| `graph.json` | Node connectivity and data flow definition |
93+
| `metadata.yaml` | Project description and configuration |
94+
95+
96+
Docker engine is used for local execution. With API calls, we use the Kubernetes engine with Argo Workflow Manager.
97+
98+
99+
100+
101+
## Documentation
102+
103+
Comprehensive documentation is available at [https://Fluidize-Inc.github.io/fluidize-python/](https://Fluidize-Inc.github.io/fluidize-python/)
104+
105+
- [Getting Started Guide](https://Fluidize-Inc.github.io/fluidize-python/getting-started)
106+
- [Node Creation Tutorial](https://Fluidize-Inc.github.io/fluidize-python/nodes)
107+
- [Project Orchestration](https://Fluidize-Inc.github.io/fluidize-python/projects)
108+
- [API Reference](https://Fluidize-Inc.github.io/fluidize-python/api)
109+
110+
## Contributing
111+
112+
We would love contributions and collaborations! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
55113

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.
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).
58115

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/).
116+
## Roadmap
62117

63-
## Releasing a new version
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:
64119

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 `*.*.*`.
120+
- **Fluidize Playground**: Automatically explore and build simulation pipelines with natural language.
121+
- **Auto-Fluidize**: Automatically convert obscure scientific software to run anywhere
69122

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

72-
---
124+
## License
73125

74-
Repository initiated with [fpgmaas/cookiecutter-uv](https://github.com/fpgmaas/cookiecutter-uv).
126+
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

0 commit comments

Comments
 (0)