Cold-process soap in a 3D-printed mold
Cold-process soap is real lye-and-oil soap – the kind that lathers thick, lasts on the shelf for months, and gives you full control over scent, color, and skin feel. The catch: it starts with sodium hydroxide, a caustic chemical that can burn skin, eyes, and lungs if you handle it carelessly. This guide walks you through everything from running the recipe through a lye calculator to demolding without sticky surfaces, plus the troubleshooting matrix for the moments when something goes wrong.
⚠ Lye safety: read this before you touch sodium hydroxide
Lye (sodium hydroxide, NaOH) is a strong base. Contact with skin causes chemical burns. Splashes in eyes can permanently damage vision. Fumes from mixing irritate lungs.
Required gear every single time: nitrile gloves (latex melts), full-coverage safety goggles (not glasses), long sleeves, closed-toe shoes. Open a window or work outside.
Always add LYE TO WATER, never water to lye – reversing it splashes caustic solution back at you. Use a heat-safe jug (Pyrex, HDPE, or stainless steel). No aluminum, no thin glass, no tin.
If lye touches skin: rinse immediately under cold running water for 15 minutes. Don't try to neutralize with vinegar – the heat of neutralization makes the burn worse. If in eyes, rinse and call emergency services. Keep children and pets out of the room until the soap is fully cured (4+ weeks).
What you'll need
PLA or PETG filament ~€20
Either works. PLA prints easier but stays slightly porous – line with parchment paper. PETG is glass-smooth and releases cleaner, no liner needed. Cold-process never gets hot enough to deform PLA, so material isn't a structural issue.
Buy →Sodium hydroxide (food-grade lye) ~€12
Pure NaOH, 99 percent or higher. Drain-cleaner grade often contains additives (aluminum chips, dyes, surfactants) that ruin soap – buy soap-making grade only. Store in a dry sealed container; lye absorbs moisture from air and clumps over time.
Buy →Distilled water ~€3
Tap water contains minerals (calcium, iron) that react with the soap and cause cloudy bars and orange spots later. Always distilled. Buy the cheap supermarket gallon.
Buy →Oil starter pack ~€28
A solid starter blend: 40 percent olive (mild, conditioning), 30 percent coconut (lather + hardness), 20 percent shea or cocoa butter (skin feel), 10 percent castor (boosts lather). Skip palm or use sustainable RSPO-certified.
Buy →Stick / immersion blender ~€25
Hand-mixing takes 20-30 minutes to reach trace; a stick blender does it in 2. Buy a dedicated one for soap-making – never use a kitchen blender for both food and soap. A cheap one is fine.
Buy →Safety gear ~€15
Wraparound safety goggles (regular glasses leave the sides open), nitrile gloves (latex disintegrates in lye), an apron or old long-sleeve shirt you don't mind ruining. A respirator (N95) is optional but helps for the 30 seconds of fumes when lye hits water.
Buy →Thermometer (probe or IR) ~€12
Lye solution and oils need to be the same temperature (within 5 C) before mixing. Eyeballing it is how you get a soap volcano. IR thermometers are fast and don't need washing between liquids.
Buy →Mold release or parchment ~€8
Parchment paper liner is foolproof for loaf molds. For shaped cavity molds, spray the inside lightly with mold release before pouring. Plain cooking spray works in a pinch but tends to leave a film – soap-specific release is cleaner.
Buy →Optional but nice: silicone scrapers (clean the jug without scratching), a small calibrated scale for fragrance, and pH test strips (range 8-12) for the cure check at week 4.
Print & Prepare
Generate and print the mold
Open Meshcast, drop in your STL, and pick a mold type:
- Tray for batches of identical bars or embed shapes.
- Two-part for sculpted bars with detail on all sides.
- Silicone if you want a reusable flexible mold for very detailed designs – pour silicone first, then cast soap into the silicone (food-safe variant required).
Slice at 0.2 mm layers, 3 walls, 15 percent infill, PLA at 210 C. Wall thickness 3 mm is plenty – soap weighs much less than wax or concrete. For loaf molds (single big cavity), bump to 4 walls to keep the long sides from bowing under wet soap weight.
Line or spray the mold
Cold-process soap demolds far easier with a barrier between bar and PLA. Two options:
- Parchment paper liner (foolproof for loaf molds): cut to fit, press into the cavity, leave 2 cm overhang on each long side to use as pull-tabs at demold time.
- Mold release spray (better for shaped cavities): two thin coats, five minutes flash time between. Skip if you printed in PETG – its smoother surface usually releases without help.
Mix
Run your recipe through a lye calculator
Never guess lye amounts. The exact ratio depends on which oils you're using (each one has a unique saponification value). Use a free calculator:
- SoapCalc.net – classic, full control
- Bramble Berry calculator – cleaner UI
Plug in your oil weights, set superfat to 5 percent (means 5 percent of oils aren't saponified – this leaves extra moisturizing oil in the bar). The calculator outputs exact NaOH grams and water grams. Print or screenshot the recipe before you start; lye in solution is no time to alt-tab.
| Beginner recipe (~600 g batch) | Weight |
|---|---|
| Olive oil | 240 g (40%) |
| Coconut oil | 180 g (30%) |
| Shea butter | 120 g (20%) |
| Castor oil | 60 g (10%) |
| Distilled water | ~228 g |
| Sodium hydroxide (NaOH) | ~84 g |
| Superfat | 5% |
Numbers above are illustrative. Always run YOUR oils through a calculator – saponification values vary by source.
Mix the lye solution
Goggles on, gloves on, sleeves down. Open a window. Weigh your distilled water into a heat-safe jug. Place the jug in the sink (catches accidental splashes).
Slowly add the lye crystals to the water while gently stirring with a stainless or silicone spoon. Lye to water, never water to lye. The solution will get cloudy, then clear, and heat to roughly 95 C / 200 F within 30 seconds. The first 30 seconds release a sharp ammonia-like vapor – don't lean over the jug.
Set the lye solution aside in a safe place (out of reach of pets and kids) to cool. You want it down to 38-43 C / 100-110 F before mixing with the oils. Usually 30-45 minutes.
Heat the oils
Melt your solid oils (coconut, shea, palm, cocoa butter) in a stainless or enamel pot on low heat. Once liquid, take off heat and add liquid oils (olive, castor, sunflower). Stir.
Target temperature: 38-43 C / 100-110 F, same window as the lye solution. They should be within 5 C of each other when you combine. Too cold and the soap won't trace (stays liquid forever); too hot and it can volcano out of the mold.
Combine and reach trace
With both liquids at temperature: pour the lye solution into the oils through a fine-mesh strainer (catches any undissolved lye crystals).
Stick-blend in 10-second bursts, stirring with the off-hand between bursts. Don't run it continuously – that overheats the motor and overshoots trace. The mixture will turn from clear-yellow to opaque-cream as it emulsifies.
What you're looking for:
| Trace stage | Looks like | Use for |
|---|---|---|
| Emulsion | Pourable, no separation but no thickening | Layered or swirled designs |
| Thin trace | Drizzle leaves a faint trail on the surface | Most pours; ideal for new soapers |
| Medium trace | Drizzle leaves a clear, raised line | Suspension of solid additives (oats, seeds) |
| Thick trace | Pudding consistency, holds peaks | Textured tops, frosting effects |
Add fragrance, color, and any additives at thin trace. Stir GENTLY by hand (not with the blender) for 30 seconds, then pour.
Pour & Cure
Pour into the printed mold
Pour the batter into the mold through the open top in a steady stream from low height (about 5 cm). Tap the mold against the table 5-6 times to release trapped air bubbles. Smooth the top with a spatula if you want a flat finish, or texture it with a spoon for rustic.
Spritz the top surface with 91 percent isopropyl alcohol – this prevents soda ash (a white powdery layer that forms on the surface when raw soap reacts with CO2 from the air). Two-three spritzes is plenty.
Cover the mold loosely with parchment or wax paper. Airflow across the wet surface causes ash; airflow underneath helps the soap cool evenly. Don't seal it air-tight.
Gel or no-gel
Within 6-12 hours of pouring, the soap heats up to 70-90 C from the saponification reaction. This is gel phase – the soap goes translucent for a few hours, then opaque again as it cools. Whether you encourage or prevent gel changes the final bar:
| Gel phase | No-gel |
|---|---|
| Glossy, vibrant colors | Pastel, matte colors |
| Smoother surface | Powdery / chalky finish without alcohol spritz |
| Lather develops faster on first wash | Slower break-in (still works) |
| Slightly harder bar at unmold | Softer bar at unmold; longer to cut |
Force gel: insulate the mold with a folded towel for 12-24 hours after pouring. The trapped heat pushes the reaction through.
Prevent gel: place the uncovered mold in the fridge for 12-24 hours. Cold pulls heat out before gel temperature is reached.
Unmold and cut
After 24-48 hours the soap should be firm to the touch but still slightly soft – press a fingernail in the corner; if it leaves a clean indent without crumbling, you're ready.
Flex the mold gently to release the soap. For loaf molds, lift by the parchment overhang. For shaped molds, flex the PLA outward at the wide end. If a corner sticks: pop the mold in the freezer for 20 minutes, then try again. Don't twist or pry – freshly demolded soap dents easily.
Cut a loaf into bars within the first 3 days. After that the soap continues to harden and starts cutting crumbly. A long thin chef's knife or a dedicated soap cutter (wire frame) gives clean bars; press straight down, don't saw.
Cure for 4-6 weeks
Place bars on a wire cooling rack (airflow on all sides) in a dry room. Rotate the bars 90 degrees every week so all sides cure evenly.
| Recipe type | Minimum cure | Recommended |
|---|---|---|
| High coconut / castor | 4 weeks | 4-6 weeks |
| Balanced (40% olive) | 4 weeks | 5-6 weeks |
| Castile (100% olive) | 8 weeks | 3-6 months |
Cure isn't optional. Uncured soap is harsh on skin, dissolves in the dish within a week, and lathers weakly. The water in the bar needs to evaporate; the saponification reaction needs to finish (the calculator gets you ~95 percent there, cure does the rest).
At week 4, test the pH with strips. Cured soap reads 8-10. Above 10 means there's still free lye – cure another 1-2 weeks. (The "zap test" is the traditional method: touch the bar to your tongue. If it zaps like a battery, it's not cured.)
Troubleshooting
The soap volcano'd out of the mold
Overheating. Either your oils + lye were too hot when combined (above 50 C), the recipe is high in olive oil and gel ran away, or the fragrance accelerated trace. Move the mold to the fridge immediately to cool it; the final bar will be ugly but usually still safe to use after cure. Next batch, mix at 38-43 C.
The soap never traced – it stayed liquid
Either your lye was old (absorbed moisture, lost potency), the temperatures were too low (below 32 C), or you didn't blend enough. Stick-blend in 30-second bursts. If it's been 30 minutes with no thickening, the lye was almost certainly old – throw the batch out and buy fresh.
The bar has a white powdery layer on top
Soda ash. Cosmetic only, soap is fine. Steam the top with a clothes iron held 5 cm above, or rinse the bar briefly under water and let it dry. Prevent next time by spritzing isopropyl alcohol on the surface within 5 minutes of pouring.
The soap won't come out of the mold
Demolded too early, or no barrier between PLA and soap. Pop the mold in the freezer 20 minutes – the soap contracts and releases. If that doesn't work, wait another 24 hours; soap continues to harden in the mold. Next time, use parchment or mold release.
The bar feels greasy or oily on the surface
Too much superfat (above 8 percent) or off-ratio. Recalculate the recipe. The bar will still saponify; cure 6+ weeks instead of 4 and the surface oil reabsorbs into the bar.
Orange spots appeared on the bar after a few weeks
DOS – "dreaded orange spots". Caused by oxidation of an oil (usually old vegetable oil). The bar is still safe to use but won't last as long. Buy fresh oils; store soap in cardboard boxes with airflow, not sealed bags.
The bar lathers weakly
Either the recipe is too high in olive oil (slow-lathering by nature – cure longer, or add 10 percent castor next batch) or it's not cured yet. Wait another 2 weeks and test again.
The bar zaps my tongue
Free lye is still present. Continue curing another 1-2 weeks and retest. If it still zaps after 6 weeks total, you under-measured oils or over-measured lye – the bar isn't safe to use; rebatch by grating and re-melting with extra oil, or compost it.
Translucent jelly veins running through the bar
Glycerin rivers. Cosmetic, totally safe. Caused by partial gel phase. Either fully force gel (insulate harder) or fully prevent gel (fridge) next time.
The PLA mold warped after a few uses
Unusual for cold-process soap – it never gets above 90 C. Either the mold is being heated by something else (left in a hot car, near a radiator) or it was over-stressed at demold. Print at 4 walls and reduce fragrance acceleration so soap demolds easier.
Made by @meshminds3d. Some product links are affiliate links; they cost you nothing extra and help keep this tool free. Got stuck? Email me a photo and I'll help you debug.