Cloud-powered AI for simplified bioimage analysis
๐ Try It Now โข ๐ Documentation โข ๐ฏ Examples โข ๐ฌ Community
BioEngine is a distributed AI platform that brings the power of cloud computing to bioimage analysis. It enables researchers to:
- ๐ฌ Deploy AI models for image analysis with automatic scaling
- ๐ Stream large datasets efficiently with privacy-preserving access control
- โก Run compute-intensive workflows on HPC clusters or cloud infrastructure
- ๐ Access resources remotely through a unified API via Hypha
Built on Ray and Ray Serve, BioEngine automatically manages resource allocation, scaling, and deployment across various computing environments.
Experience BioEngine instantly by testing AI models on the community instance:
- Visit BioImage.IO Model Zoo
- Select any model from the collection
- Click "TEST RUN MODEL" to execute on the public BioEngine worker (
bioimage-io/bioengine-worker) - See results powered by cloud infrastructureโno setup required!
Create custom AI-powered analysis services:
- Model Inference Services: Deploy ML models for real-time predictions
- Training Pipelines: Run distributed model training workflows
- Data Exploration Tools: Build interactive analysis and visualization services
- Custom Workflows: Design specialized processing pipelines
๐ Learn more: BioEngine Applications Guide
Serve large datasets with streaming and access control:
- Privacy-preserving: Fine-grained user permissions
- Efficient streaming: Partial data access for Zarr datasets
- Easy sharing: HTTP-based access through Hypha
๐ Learn more: BioEngine Datasets Guide
The easiest way to get started is through the web interface:
๐ Visit bioimage.io/#/bioengine
The dashboard provides:
- ๐ Interactive Configuration Wizard: Generate deployment commands for your environment
- ๐ฅ๏ธ Instance Management: View and control BioEngine workers
- ๐ Resource Monitoring: Track cluster resources and application status
- ๐ฎ Application Deployment: Deploy and manage AI applications
Start a local BioEngine worker on your workstation:
# Clone the repository
git clone https://github.com/aicell-lab/bioengine-worker.git
cd bioengine-worker
# Create required directories
mkdir -p .bioengine data
# Start with Docker Compose
UID=$(id -u) GID=$(id -g) docker compose upWhat happens:
- Starts a local Ray cluster with your machine's resources
- Registers as a Hypha service for remote access
- Mounts
.bioengine/for workspace anddata/for datasets
Configuration:
- Add
HYPHA_TOKENto.envfile (or you'll be prompted to login) - Customize resources via
--head-num-cpusand--head-num-gpus - See all options:
docker run --rm ghcr.io/aicell-lab/bioengine-worker:latest python -m bioengine.worker --help
๐ก Pro Tip: Visit the BioEngine Dashboard to generate custom deployment commands for your environment!
- ๐ BioEngine Applications - Deploy AI models and create custom services
- ๐ BioEngine Datasets - Share and stream large scientific datasets
- ๐ฎ BioEngine Dashboard - Web-based configuration and management
BioEngine supports three deployment modes to fit your infrastructure:
| Mode | Description | Best For |
|---|---|---|
| single-machine | Local Ray cluster on one machine | Workstations, development, small-scale analysis |
| external-cluster | Connect to existing Ray cluster | Kubernetes, pre-configured HPC environments |
| slurm | Auto-scaling via SLURM jobs | HPC clusters with SLURM scheduler |
Once a BioEngine worker is running, access it remotely via Python:
from hypha_rpc import connect_to_server, login
# Authenticate and connect
token = await login({"server_url": "https://hypha.aicell.io"})
server = await connect_to_server({
"server_url": "https://hypha.aicell.io",
"token": token,
})
# Get the BioEngine worker service
workspace = server.config.workspace
worker_service = await server.get_service(f"{workspace}/bioengine-worker")
# Check worker status
status = await worker_service.get_status()
print(f"Ray cluster: {status['ray_cluster']}")
# Deploy an application
app_id = await worker_service.run_application(
artifact_id="workspace/my-app",
application_id="my-instance",
)
# Get application status
app_status = await worker_service.get_application_status(
application_ids=[app_id]
)The BioEngine worker service provides comprehensive functionality:
Resource Management:
get_status()- Get worker and cluster statusstop_worker()- Shut down the worker
Dataset Operations:
list_datasets()- List available datasetsrefresh_datasets()- Reload dataset manifests
Application Management:
run_application(artifact_id, ...)- Deploy an applicationstop_application(application_id)- Stop a running applicationget_application_status(application_ids)- Get application statuslist_applications()- List all deployed applications
Development:
execute_python_code(code, ...)- Execute Python code remotelycheck_access()- Verify user permissions
See the Applications Guide for detailed usage examples.
BioEngine consists of three main components:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Hypha Server โ
โ (RPC & Service Discovery) โ
โโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โ Remote Access
โ
โโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ BioEngine Worker โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Ray Cluster (Distributed Computing) โ โ
โ โ โข Ray Serve (Model Deployment) โ โ
โ โ โข Auto-scaling Worker Management โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Applications Manager โ โ
โ โ โข Deploy & manage AI services โ โ
โ โ โข Resource allocation โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Datasets Manager โ โ
โ โ โข HTTP streaming with access control โ โ
โ โ โข Zarr store for efficient data access โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
We welcome contributions! Whether you're fixing bugs, adding features, or improving documentation:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
BioEngine is built on top of several excellent open-source projects:
- Ray - Distributed computing framework
- Hypha - Service orchestration and RPC
- Zarr - Chunked array storage
- ๐ฌ GitHub Discussions - Ask questions and share ideas
- ๐ Issue Tracker - Report bugs or request features
- ๐ง Contact: bioimage.io