Bioprinting computation toolkit & analysis platform
Material calculations · Rheology modeling · GCode analysis · Cell viability estimation · Cross-linking kinetics · 87 interactive tools
- Quick Start
- What's Inside
- Live Demo — 87 Analysis Tools
- SDK — npm Package
- REST API
- Architecture
- Development
- Deployment
- Troubleshooting
- Contributing
- License
All 87 analysis tools run entirely in your browser — no backend, no install, no dependencies:
Start with:
- 📊 Data Explorer — histograms and scatter plots with regression
- 🎯 Quality Control — quality grading and optimal parameters
- ⚙️ Parameter Optimizer — find optimal parameters for any target metric
- 📋 Data Table — sortable, filterable data browser with CSV export
Or install the SDK:
npm install @sauravbhattacharya001/biobots| Component | Description |
|---|---|
| 87 Browser Tools | Interactive analysis, visualization, and lab management tools — zero dependencies, pure client-side |
| 80 SDK Factories | Node.js computation modules for material calc, rheology, GCode, viability, and more |
| REST API | ASP.NET Web API for querying bioprint statistics (11 metrics × 3 comparisons × 3 aggregations) |
| 150 Test Suites | 5,668 Jest tests covering SDK modules and analysis tools |
| .NET Models | NuGet package with data model classes for integration |
| Docker | Containerized deployment via GitHub Container Registry |
All tools are deployed at sauravbhattacharya001.github.io/BioBots and render entirely client-side using Canvas API.
🔬 Core Analysis (8 tools)
| Tool | Description |
|---|---|
| 📊 Data Explorer | Histograms, scatter plots, regression, summary statistics |
| 🔬 Print Comparison | Side-by-side comparison of 2–4 prints with radar charts |
| 🎯 Quality Control | Quality grading (A–F), correlation heatmap, optimal parameters |
| 🔍 Anomaly Detector | Z-Score and IQR outlier detection with severity classification |
| 🔗 Cluster Analysis | K-means clustering with auto-k detection and silhouette scores |
| ⚙️ Parameter Optimizer | Find optimal parameters for any target metric |
| 📈 Trend Analysis | Moving averages, regression, metric correlations |
| 📊 Correlation | Pairwise metric correlation matrix and insights |
📊 Statistical & Process Control (8 tools)
| Tool | Description |
|---|---|
| 📊 SPC Charts | X-bar/R statistical process control charts |
| 📊 Pareto Analysis | Multi-objective Pareto frontier visualization |
| 🎛️ Sensitivity Analysis | Tornado charts, parameter impact ranking |
| 📐 Design of Experiments | Parameter space coverage, gap analysis |
| 📊 Statistics | Hypothesis testing and statistical calculator |
| 📊 Reproducibility | Print reproducibility scoring |
| 📉 Drift Detector | Parameter drift detection across runs |
| 📊 Coverage Tracker | Parameter space coverage analysis |
🧬 Bioink & Materials (9 tools)
| Tool | Description |
|---|---|
| 🧪 Bioink Calculator | Volume, cost, and time estimation for bioink preparations |
| 🧪 Bioink Mixer | Multi-component mixing ratio optimization |
| 🧪 Rheology Modeler | Power-law, Carreau, Herschel-Bulkley viscosity models |
| 🧪 Materials Database | Bioink material properties and selection guide |
| 🧫 Bioink Database | Searchable bioink properties with comparison |
| 🧪 Compatibility Matrix | Material pairing compatibility matrix |
| 🧫 Material Substitution | Smart material substitution recommendations |
| ⏳ Shelf Life | Bioink stability and expiry tracking |
| 📐 Standard Curve | Standard curve calculator for calibration data |
🏗️ Print Setup & Design (8 tools)
| Tool | Description |
|---|---|
| 🏗️ Scaffold Designer | 3D scaffold design — porosity, strut, material analysis |
| 🔩 Nozzle Planner | Nozzle selection and coordination |
| 🔧 Calibration | Guided multi-parameter calibration |
| 🗺️ Toolpath Analyzer | G-code toolpath visualization |
| 📋 Recipe Builder | Reproducible print recipe builder |
| 📝 Protocol Library | Protocol management, tagging, comparison |
| ⚖️ Protocol Compare | Side-by-side protocol comparison engine |
| 🔮 Predictor | ML prediction of print outcomes |
🧫 Cell Biology & Post-Print (7 tools)
| Tool | Description |
|---|---|
| 🧬 Cell Seeding | Seeding density and scaffold calculations |
| 🧫 Maturation Tracker | Post-print tissue maturation tracking |
| 📈 Growth Curve | Cell proliferation tracking |
| 🔬 Passage Tracker | Cell passage tracking and lineage management |
| 🧬 Western Blot | Western blot analysis and quantification |
| 🧪 Flow Cytometry | Flow cytometry data analysis and gating |
| ⚡ Electroporation Calculator | Electroporation protocol parameters |
🏭 Lab Operations & Management (16 tools)
| Tool | Description |
|---|---|
| 💰 Cost Estimator | Per-print costs with materials, machine time, batch scaling |
| 📊 Queue Manager | Print job scheduling and queue management |
| 🏭 Batch Analytics | Batch processing queue and statistics |
| 📊 Yield Analyzer | Print yield analysis and optimization |
| 🌡️ Environment Monitor | Lab conditions — temp, humidity, CO₂, particulates |
| 🛡️ Maintenance | Equipment maintenance scheduling and alerts |
| 🚀 Fleet Commander | Multi-printer fleet management dashboard |
| 🏭 Capacity Planner | Lab capacity planning and resource forecasting |
| 📦 Sample Registry | Sample tracking and inventory management |
| 📋 Sample Tracking | Sample tracking board with status |
| ♻️ Waste Tracker | Material waste logging and trends |
| ⏰ Expiry Watchdog | Reagent expiry tracking and alerting |
| 🧹 Sterilization | Sterilization method selection and cycles |
| 📅 Timeline Planner | Bioprint timeline planning and scheduling |
| 📅 Smart Scheduler | Intelligent experiment scheduling |
| ⏱️ Lab Timer | Multi-channel lab timer for protocol timing |
📝 Compliance, Quality & Reporting (12 tools)
| Tool | Description |
|---|---|
| 📋 Print Report | Formatted, printable lab reports |
| 📓 Print Logbook | Lab notebook — notes, tags, flags, search, export |
| 📊 Print Profile | Individual print quality profiling with scoring |
| 📈 Evolution Tracker | Print quality evolution over time |
| 🔬 Failure Diagnostics | Root cause analysis and failure mode detection |
| 🔧 Troubleshooter | Interactive bioprint troubleshooter |
| ✅ GLP Compliance | Good Laboratory Practice compliance checks |
| 🔗 Chain of Custody | Sample chain-of-custody tracking and audit trail |
| 🔍 Data Integrity | Data integrity auditing and validation |
| 🛡️ Safety Checklist | Lab safety checklist and compliance |
| 🚨 Incident Report | Lab incident reporting and pattern analysis |
| Experiment risk assessment and mitigation |
🤖 Automation & Advanced (7 tools)
| Tool | Description |
|---|---|
| 🤖 Print Quality Autopilot | Autonomous print quality monitoring and adjustment |
| 📝 Recommender | Parameter recommendation engine |
| 🔄 Workflow Orchestrator | Lab workflow orchestration and automation |
| ⚙️ Workflow Builder | Visual workflow builder for experiment pipelines |
| 🔬 Experiment Replicator | Experiment replication planning and tracking |
| 🧠 Knowledge Graph | Lab knowledge graph for experiment insights |
| Contamination early warning and detection system |
🔧 Utilities & Reference (12 tools)
| Tool | Description |
|---|---|
| 📋 Data Table | Searchable, sortable, filterable data browser with CSV export |
| 🧫 Wellplate Analyzer | Performance breakdown by wellplate format |
| 🧫 Plate Designer | Plate layout designer for experiment planning |
| 🔄 Unit Converter | Bioprinting unit converter |
| 📖 Glossary | Bioprinting terminology reference |
| 🎬 Simulator | Print timeline simulator |
| 🧬 Print Fingerprint | Print DNA fingerprinting for unique run identification |
| 🎓 Training Tracker | Lab personnel training and certification tracking |
| 🔍 Search Hub | Unified search and navigation across all tools |
| 🔌 API Explorer | Interactive REST API documentation and testing |
| 📚 Developer Guide | Setup, testing, and contributing reference |
| 🏛️ Architecture | System architecture diagram |
The @sauravbhattacharya001/biobots package ships 80 factory functions for bioprinting computation — material calculations, rheology modeling, cell viability estimation, GCode analysis, and more.
npm install @sauravbhattacharya001/biobotsAll modules are lazy-loaded — only the factories you call are loaded from disk, keeping require() startup fast.
const biobots = require('@sauravbhattacharya001/biobots');
// Material usage estimation
const calc = biobots.createMaterialCalculator();
const usage = calc.calculateUsage({
wellplate: 24, layerHeight: 0.2, layerNum: 10,
materialKey: 'alginate', infillPercent: 80, wastePercent: 15
});
console.log(usage.totalVolumeMl, usage.estimatedCost);
// Rheology modeling (Power Law)
const rheo = biobots.createRheologyModeler();
const viscosity = rheo.powerLaw(100, { K: 50, n: 0.4 }); // η at γ̇ = 100 s⁻¹
const window = rheo.printabilityWindow({ K: 50, n: 0.4 });
// Cell viability estimation
const viability = biobots.createViabilityEstimator();
const result = viability.estimate({
shearStress: 5.0, // kPa
duration: 120, // seconds
cellType: 'HeLa'
});
console.log(result.estimatedViability); // percentage
// GCode toolpath analysis
const gcode = biobots.createGCodeAnalyzer();
const analysis = gcode.analyze('G1 X10 Y20 Z0.2 E5 F1200\nG1 X30 Y20');
console.log(analysis.totalDistance, analysis.layerCount);
// Discover all available factories
console.log(biobots.listFactories()); // sorted array of 80 names
console.log(biobots.factoryCount); // 80| Category | Factories | Examples |
|---|---|---|
| Material Science | 12 | createMaterialCalculator, createBioinkMixer, createCompatibilityMatrix, createShelfLifeManager |
| Print Engineering | 10 | createGCodeAnalyzer, createScaffoldCalculator, createNozzleAdvisor, createRecipeBuilder |
| Cell Biology | 8 | createViabilityEstimator, createCellSeedingCalculator, createPassageTracker, createGrowthCurveAnalyzer |
| Rheology & Physics | 5 | createRheologyModeler, createCrosslinkAnalyzer, createElectroporationCalculator |
| Lab Operations | 16 | createLabInventoryManager, createSmartReorderAdvisor, createWasteTracker, createEnvironmentalMonitor, createSterilityAssurance |
| Quality & Analysis | 12 | createPrintQualityScorer, createYieldAnalyzer, createCapabilityAnalyzer, createDriftDetector |
| Data & Export | 8 | createDataExporter, createPrintSessionLogger, createSampleTracker, createDilutionCalculator |
| Automation | 10 | createProtocolGenerator, createJobEstimator, createMediaPrepCalculator, createCentrifugeCalculator |
The ASP.NET Web API reads bioprinting data from a JSON dataset and exposes RESTful endpoints for statistical queries.
GET /api/prints/{metric}/{comparison}/{value}
| Metric | Type | Description |
|---|---|---|
livePercent |
double | Cell viability — % alive (live/dead imaging) |
deadPercent |
double | Cell mortality — % dead |
elasticity |
double | Structural rigidity (kPa) |
cl_duration |
int | Photocrosslinking duration (ms) |
cl_intensity |
int | Photocrosslinking light intensity (%) |
extruder1 / extruder2 |
double | Extruder pressure at print time |
layerHeight |
double | Height per layer (mm) |
layerNum |
int | Total layer count |
wellplate |
int | Wellplate type |
serial |
int | BioBot 1 serial number |
| Comparison | Description |
|---|---|
greater / lesser / equal |
Count where metric matches condition |
Pass Maximum, Minimum, or Average as the value for aggregation queries:
# Prints with >50% cell viability
GET /api/prints/livePercent/greater/50
# Maximum layer count
GET /api/prints/layerNum/greater/Maximum
# Average elasticity
GET /api/prints/elasticity/greater/AverageBioBots/
├── docs/ # 87 client-side analysis tools (GitHub Pages)
│ ├── shared/ # 80 SDK computation modules
│ ├── index.html # Dashboard entry point
│ └── *.html # Individual tool pages
├── Try/ # ASP.NET Web API backend
│ ├── Controllers/
│ │ └── PrintsController.cs # REST API with 11 metric endpoints
│ ├── Models/
│ │ └── Print.cs # Data models
│ └── Web.config
├── __tests__/ # 146 Jest test files
├── tests/ # Additional test modules
├── src/ # Python analysis scripts
├── index.js # npm SDK entry — lazy-loaded factory manifest
├── index.d.ts # TypeScript type definitions
├── bioprint-data.json # Sample dataset
└── BioBotsTool.sln # .NET solution file
- Thread-safe caching — Double-checked locking for concurrent request safety
- File-watch reload — Checks
LastWriteTimeUtcon each request; re-parses only when changed - Null-safe filtering — Records with missing nested objects are skipped with trace warnings
- Float equality — Epsilon-based comparison (
1e-9) for IEEE 754 precision - Lazy SDK loading — Factory modules loaded on first access, not at
require()time
- Node.js ≥ 18 (for SDK and tests)
- Visual Studio 2015+ with ASP.NET workload (for REST API)
- .NET Framework 4.x (for REST API)
npm install
# Full suite with coverage
npm test
# Watch mode
npx jest --watch
# Single file
npx jest __tests__/calculator.test.js
# Coverage thresholds (branches: 60%, functions/lines/statements: 70%)
npm run coverage:check- Open
BioBotsTool.slnin Visual Studio - Press F5 to start the development server
- Navigate to
http://localhost:{port}/index.html
npx http-server docs -p 8000
# Open http://localhost:8000Add to Web.config:
<appSettings>
<add key="DataFilePath" value="C:\path\to\your\bioprint-data.json" />
</appSettings>The data file is watched — edits are picked up automatically.
docker pull ghcr.io/sauravbhattacharya001/biobots-tool:latest
docker run -p 8080:80 ghcr.io/sauravbhattacharya001/biobots-tool:latestThe BioBots.Models package provides data model classes for .NET projects:
dotnet nuget add source https://nuget.pkg.github.com/sauravbhattacharya001/index.json \
--name github-biobots --username YOUR_GITHUB_USERNAME --password YOUR_GITHUB_PAT
dotnet add package BioBots.Models| Problem | Solution |
|---|---|
| API returns empty results | Verify bioprint-data.json exists and is valid JSON |
| Analysis tools show "No data" | Tools load bioprint-data.json via relative path — ensure the file is present |
Tests fail with document is not defined |
Run npm install — jsdom is required for DOM-dependent tests |
| Docker container won't start | Requires Windows containers (.NET Framework 4.x) — use --isolation=hyperv on Win 10/11 |
| NuGet auth fails | GitHub Packages requires a PAT with read:packages scope |
Contributions are welcome! See CONTRIBUTING.md for guidelines, ARCHITECTURE.md for system design, or the Developer Guide for setup instructions.
MIT — Saurav Bhattacharya
Saurav Bhattacharya — @sauravbhattacharya001