v0.1.0 — Initial Release
🧼 Soap Calc v0.1.0 — Initial Release
The first Python-based soap formulation library. Professional saponification calculations, recipe management, and property analysis — built for developers and AI-assisted soap makers.
✨ Highlights
- Multi-lye support — NaOH (bar soap), KOH (liquid soap), and dual-lye hybrids (shaving/cream soap) with configurable ratios and purity adjustments
- Flexible water calculation — Water:Lye ratio, lye concentration %, or water as % of oils
- Superfatting — Standard lye discount and dedicated superfat oils for hot process recipes
- Mold-based batch sizing — Calculate oil weight from mold dimensions (L×W×H) with fill factor and 0.692 g/cm³ oil density
- Recipe scaling — Resize any recipe to a target oil weight while preserving all ratios
📊 Analysis & Validation
- Property estimation from fatty acid profiles: Hardness, Cleansing, Conditioning, Bubbly Lather, Creamy Lather, Longevity, Iodine, INS
- Built-in validation checks for missing definitions, out-of-range properties, and fragrance safety limits
📦 Recipe Management
- JSON & YAML recipe input formats
- Phased ingredient tracking — Lye Liquid, Oil Phase, Light/Medium/Heavy Trace, Post Cook, In Mold
- Additives & fragrances with usage rates, percent bases (oil/liquid/batch weight), and safety limits
- Markdown export — printable recipe sheets with measurements, checklists, property bars, and fatty acid profiles
🗃️ Database
- 50+ built-in oils with SAP values and fatty acid profiles
- User-extensible via
~/.soap_calc/oils.json - CLI search —
soap-calc list-oils "coconut"
🤖 AI-Friendly
Designed for collaboration with Claude Code, GitHub Copilot, and other AI agents. Structured recipe files + CLI + transparent calculations = seamless AI-assisted formulation.
📋 CLI Commands
soap-calc calculate recipe.yaml # Calculate & display
soap-calc validate recipe.yaml # Check for issues
soap-calc export recipe.yaml -o out.md # Markdown report
soap-calc scale recipe.yaml 1000 # Resize to 1000g oils
soap-calc list-oils "olive" # Search oil database
Requirements
- Python ≥ 3.9
- PyYAML ≥ 6.0