Material Balance Planner
Material Balance Planner
Enter only the rates you can verify in your current build. The planner keeps water, residue, and generic material ledgers separate, rejects incompatible units, and shows every substituted formula.
On this page
User-input calculation · no recipe database
Measure first. Enter the same units. Keep the formula visible.
Start with a blank scenario and enter only rates you can verify in your current Sandustry build. Water and steam use separate direct ledgers; residue uses generation, sink, and optional storage values; Generic Chain multiplies each user-entered per-cycle quantity by its cycles per minute. The planner never reads a save, guesses a machine count, or imports a recipe database.
Keep every row inside one dimension. Mass can convert between grams, kilograms, and tonnes; volume can convert between litres and cubic metres; count can convert between items per second and items per minute. The tool never applies density, phase-change, or hidden game rules. Missing, invalid, or conflicting fields clear the numeric result instead of becoming zero.
Results describe the mathematics of the current inputs, not an official game mechanic or a promise of permanent factory stability. Save scenarios locally, export strict JSON, or create a read-only URL fragment only after reviewing the privacy notice below.
JavaScript is required to use the interactive rate calculator. Transparent calculation formulas are displayed below.
Overview
The Material Balance Planner is a formula-transparent rate calculator for Sandustry. It diagnoses the arithmetic implied by user-entered rates; it does not supply game recipes, infer hidden loss, read saves, or guarantee a layout.
Planner Specifications
- Conservation Law
- Exact linear rate balance across all inputs, outputs, and intermediate buffers
- Decimal Precision
- 6-decimal fixed-point calculation with 0.000001 epsilon tolerance
- Cross-Dimension Rule
- Independent mass (kg), volume (L), and count (items) accounting without implicit density conversion
- Local Storage
- Up to 20 offline scenarios stored in browser localStorage (256 KiB max per scenario)
Calculation Modes
The planner operates across three unified modes sharing the same data schema:
- Water & Steam Balance: Calculates user-entered external source, recovered condensate, process consumption, and explicit waste as separate water and steam ledgers.
- Residue Balance: Evaluates byproduct generation against burner, reprocessor, and export sinks to calculate net accumulation and exact minutes until storage full.
- Generic Production Chain: Aggregates multi-machine cycle throughputs and external endpoints to identify material deficit bottlenecks.
Transparent Formulas
All calculations use publicly documented linear conservation equations:
- Water Net Balance:
netBalance = externalSource + recovered - processConsumption - waste - Required Makeup:
requiredMakeup = max(0, -netBalance) - Residue Net Accumulation:
netAccumulationRate = generation - burnSink - processSink - exportSink - Storage Duration:
timeToStorageFull = remainingCapacity / netAccumulationRate - Generic Material Net:
netBalance(m) = externalSourceRate(m) + productionRate(m) - consumptionRate(m) - externalSinkRate(m) - targetDemand(m)
Frequently Asked Questions
Why does this planner start completely blank without prefilled recipes?
Sandustry is in active Early Access with frequent balance adjustments. To prevent misleading results from outdated datamines or unconfirmed community posts, all machine cycle times and input/output ratios are entered directly by the player.
How do I choose the correct flow and quantity units?
Select units matching your in-game display. Mass units (g, kg, t) and volume units (L, m³) are normalized to per-minute base flows. Cross-dimension conversions between mass, volume, and item count are strictly prevented to preserve physical conservation.
Are my custom factory scenarios uploaded or stored on any server?
No. All rate balancing, storage tracking, and bottleneck calculations run entirely inside your browser. Scenarios are saved exclusively to your local browser storage and remain completely private.
How does URL fragment sharing work?
Sharing encodes your active scenario into a base64url URL fragment (#mbp=...). No data is sent to a backend server. Recipients view a read-only preview and can choose to explicitly import the scenario into their own local browser storage.
Why does the planner show a unit conflict?
A material can be normalized only inside one dimension. Mass, volume, and item count are never converted through an assumed density or steam-to-water ratio. Correct the conflicting row before the result becomes available.
Will a Sandustry update change my saved scenario?
No saved rate is silently replaced. Record the version you observed, duplicate the scenario before revising it, and update only the fields you verify in the newer build.
Sources and verification
- Material Balance Formula & Transparency Specification (Opens in a new tab)
Sandustry Guide Editorial · Checked 2026-08-20 · Repository document docs/material-balance-formulas.md: linear conservation equations for water/steam, residue, and generic chain throughput.