How is perfume made?
Rose oil boils at 230 °C, yet it leaves the petals at 100 °C in a copper pot in Kannauj. Fire up the deg and bhapka, see why steam carries the oil over, then spray a perfume on skin and watch the top, heart and base notes leave one by one, each at the speed its vapour pressure allows.
▶ Play with it · Read the 60-second explainer · Watch the 40-second video
- A smell is molecules in flight. To be smelled, a molecule has to leave its liquid, drift through the air and reach a patch of lining high in your nose. Only small, volatile molecules manage it: nearly all weigh under about 300 g/mol. There they switch on a pattern among about 400 kinds of odour receptor, and the brain reads the pattern as rose, orange or musk.
- The still: two vapour pressures add up. In Kannauj, petals and water are boiled in a copper deg and the vapour is led through a bamboo chonga to the bhapka, a receiver cooled in water and holding sandalwood oil. Oil and water do not mix, so each pushes out its own vapour and the pot boils when the two pressures together match the air outside. That is why geraniol, which boils at 230 °C, comes over at about 100 °C. It takes roughly 3,000 to 4,000 kg of rose petals to make 1 kg of rose oil.
- Other ways out of the flower. Jasmine and tuberose are too delicate to boil, so a solvent washes their scent out as a waxy concrete, and alcohol turns that into an absolute. Citrus oil is pressed cold from the peel. Carbon dioxide squeezed past 73.8 bar above 31 °C becomes supercritical, dissolves the oils and then leaves as gas. And since coumarin in 1868 and vanillin in 1874, chemists have built scent molecules directly, which is where most of a modern perfume comes from.
- The pyramid is evaporation. Top, heart and base notes are an order of volatility. On skin at 32 °C, limonene pushes with about 400 pascals and is gone in minutes; linalool, at about 36, lasts under an hour; a musk at 0.14 is still there the next day. The alcohol leaves first, in about a minute. Heavy base notes also slow the lighter ones by diluting them in the film, which is what a fixative does.
- The factory and the bottle. A formula of dozens to hundreds of materials is weighed, blended, rested, diluted in alcohol, chilled, filtered and bottled. Eau de cologne holds about 2 to 3% fragrance oil, eau de toilette 5 to 15%, eau de parfum 15 to 20% and parfum 15 to 30%; attar has no alcohol at all. The spray pump is a tiny piston with a ball valve that pushes about 0.1 mL through a swirl nozzle at each press.
- On the skin, on the label, on the shelf. Warm skin and moving air drive a scent off sooner; the skin's own oil holds the last of it back. In the EU a listed fragrance allergen such as linalool or limonene must be named on the pack above 0.001% in a product that stays on the skin, and a 2023 regulation added 56 more substances to the list. Natural does not mean safer. Light, heat and air spoil perfume, and oxidised limonene and linalool are harsher on skin, so keep the bottle cool, dark and capped.
| Term | Meaning |
|---|---|
| Volatility | How readily a substance leaves a liquid and becomes a gas. Every smell depends on it. |
| Vapour pressure | The pressure of a substance's own gas above its liquid. Limonene has about 264 Pa at 25 °C, vanillin about 0.016 Pa. |
| Odour receptor | A protein on a smell cell that scent molecules switch on. Humans have about 400 kinds, and each smell lights up its own pattern of them. |
| Steam distillation | Carrying an oil over in steam at about 100 °C. Oil and water do not mix, so their vapour pressures add up to the outside pressure. |
| Deg and bhapka | The copper still of Kannauj: a pot on the fire and a long-necked receiver, joined by a bamboo pipe and cooled in a trough of water. |
| Attar | Traditional Indian perfume: flower scent distilled into sandalwood oil, with no alcohol. |
| Concrete and absolute | A concrete is the waxy paste a solvent pulls from flowers. Washing it with alcohol and removing the wax gives the absolute. |
| Top, heart and base notes | The parts of a perfume that leave the skin in minutes, in an hour or two, and over a day, in order of volatility. |
| Fragrance allergen | A scent molecule that can cause a skin allergy in some people. EU rules require listed ones to be named on the pack above a tiny limit. |
4,000 years from clay pots of scented oil to a label that names every allergen.
- 1200 BCE · Tapputi, the first perfume maker we know by name (Tapputi-Belatekallim, Assur, Mesopotamia (now Iraq))
- 550 · Gandhayukti: perfume recipes in the Brihat Samhita (Varahamihira, Ujjain, Madhya Pradesh)
- 1000 · Rose water from the still (Ibn Sina (Avicenna), by tradition, Persia and Central Asia)
- 1700 · Kannauj and the deg-bhapka (The attar makers of Kannauj, Kannauj, Uttar Pradesh)
- 1709 · Eau de Cologne (Johann Maria Farina (Giovanni Maria Farina), Cologne)
- 1868 · Coumarin and vanillin are made in the lab (William Henry Perkin; Ferdinand Tiemann and Wilhelm Haarmann, London and Holzminden)
- 1916 · Mysore distils its own sandalwood (The Mysore government under Maharaja Krishnaraja Wadiyar IV, with M. Visvesvaraya, Alfred Chatterton and S. G. Shastry, Bengaluru and Mysuru, Karnataka)
- 1991 · The genes that let us smell (Linda Buck and Richard Axel, New York)
The full story, with 28 moments, charts, people and 35 sources: glassbox.how/e/perfumeclear/history. The data lives in history.json.
Made with the Glassbox studio from this box's storyboard (window.glassbox.director). Free to reuse under CC BY 4.0.
| File | What | Size |
|---|---|---|
glassbox/reel.mp4 |
Reel / Short, with captions and soundtrack | 1080×1920 |
glassbox/video.mp4 |
YouTube video, with captions and soundtrack | 1920×1080 |
glassbox/slide-1…10.jpg |
Instagram carousel | 1080×1350 |
glassbox/thumb.jpg |
YouTube thumbnail | 1280×720 |
glassbox/cover.jpg |
Share card and repo social preview | 1200×630 |
glassbox/history-reel.mp4 |
“History in 10 moments” Reel / Short | 1080×1920 |
glassbox/history-slide-*.jpg |
History carousel | 1080×1350 |
glassbox/post.json |
Post copy and schedule used by the publish kit |
This box has no accounts and no ads, and it ships its own fonts and libraries. When you run it yourself it sends nothing anywhere. On glassbox.how, the site's /bar.js also loads Glassbox's analytics: Google Analytics to count visits (it asks first in the EU, UK and Switzerland, and stays off when your browser sends Global Privacy Control or Do Not Track) and ClickTrust to detect bots.
It remembers a few things in your own browser only, and never sends them anywhere:
| Browser storage key | What it holds |
|---|---|
perfumeclear.v1 |
Which chapters you have opened, your best quiz scores, and sound on or off. |
Exactly what each one sees is at glassbox.how/privacy.
- Code: MIT. Use it, change it, ship it.
- Explanations, text, images and videos (
glassbox.json,glassbox/): CC BY 4.0. Credit “Glassbox, glassbox.how/e/perfumeclear”. - Third-party parts keep their own licences: three.js (MIT), Geist, Instrument Serif (SIL OFL 1.1).
- The Glassbox name and logo aren't covered by either licence. See the terms.
Found a mistake? Open an issue. Corrections happen in public.
It's plain HTML, CSS and JavaScript. No build step and no dependencies. Run locally, it contacts no other website.
python3 -m http.server 8000Three.js and the fonts ship in vendor/ and fonts/, so it also works offline.
Then open http://localhost:8000.
| File | What |
|---|---|
index.html, css/app.css |
The page and its styles |
js/app.js, js/stage.js, js/ui.js, js/kit.js |
The shared Glassbox 3D engine: chapters, 3D stage, controls, quiz, video director |
js/chapters/*.js |
One file per chapter: the 3D model, controls, text, key terms, quiz and video scenes |
js/perfume.js |
Shared physics and parts: vapour pressures of scent molecules, the steam-distillation sum, the model of a perfume film drying on skin, chart boards and particles |
glassbox.json |
Title, question, explainer beats, key terms, browser storage and credits shown on glassbox.how |
reel in each chapter |
The storyboard the Glassbox studio records into short videos |
glassbox/ |
The published video, slides, thumbnail and post copy |
fonts/, vendor/three/ |
Self-hosted Geist and Instrument Serif (SIL OFL 1.1) and three.js (MIT) |




