Skip to content

v0.1.0 — Initial Release

Choose a tag to compare

@mikewolfd mikewolfd released this 15 Feb 04:31
· 35 commits to main since this 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 searchsoap-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