Chinese Gunpowder
Combustion Chemistry & Gas Laws

Chinese Gunpowder

An accidental discovery by alchemists seeking immortality — and the chemistry that changed warfare forever.

Combustion Chemistry & Gas Laws12-Month Curriculum 12h

The Story

The Search for Immortality

In the 9th century CE, during the Tang Dynasty, Chinese alchemists were obsessed with a single goal: finding the elixir of immortality. They believed that the right combination of minerals, heated in the right way, would produce a substance that could extend human life forever.

They tried thousands of combinations. They mixed mercury with jade. They heated arsenic with gold. They combined sulphur with saltpetre. Most of their concoctions were useless. Some were poisonous — several emperors died from taking alchemical "elixirs" that contained mercury or lead.

But one combination did something entirely unexpected.

Around 850 CE, an anonymous alchemist — recording his experiments in a text called the Zhenyuan miaodao yaolüe — noted a mixture that should be avoided at all costs: sulphur, saltpetre (potassium nitrate), and charcoal. When heated together, this mixture did not produce an elixir. It produced a violent flash, a loud bang, and singed the alchemist's hands and face.

The text warns: "Some have heated together sulphur, realgar, and saltpetre with honey; smoke and flames result, so that their hands and faces have been burnt, and even the whole house burned down."

The alchemists were looking for immortality. They found gunpowder.

The Chemistry

Gunpowder is a mixture of three substances in specific proportions: approximately 75% potassium nitrate (KNO₃), 15% charcoal (carbon), and 10% sulphur.

Each component has a specific role:

Potassium nitrate (saltpetre) is the oxidizer. It provides the oxygen needed for combustion, which is why gunpowder can burn in an enclosed space — or even underwater. The oxygen comes from the nitrate (NO₃⁻) ion, not from the air. This is what makes gunpowder fundamentally different from ordinary fire, which stops burning when deprived of air.

Charcoal (carbon) is the fuel. It burns (combines with oxygen) to produce carbon dioxide and heat.

Sulphur is the secondary fuel and reaction accelerator. It has a low ignition temperature (approximately 240°C, compared to charcoal's 300°C), which means it catches fire first and then ignites the charcoal. It also produces sulphur dioxide gas, which contributes to the expansion that makes gunpowder an effective propellant.

The overall reaction is approximately:

2KNO₃ + 3C + S → K₂S + 3CO₂ + N₂

The products are solids (potassium sulphide) and gases (carbon dioxide and nitrogen). The gases occupy about 3,000 times more volume than the original solid mixture. This sudden, violent expansion of gas is what creates the explosion.

From Fireworks to Weapons

The Chinese did not immediately use gunpowder for weapons. For more than a century, it was used primarily for fireworks and signal flares — the earliest "fire arrows" were conventional arrows with small bags of gunpowder tied to the shaft, used to set fire to enemy fortifications.

The first true gunpowder weapon was the fire lance — a bamboo tube packed with gunpowder and shrapnel, attached to a spear. When lit, it produced a jet of flame and projectiles at close range. By the 12th century, Chinese armies were using bombs (gunpowder packed in iron or ceramic shells), rockets (tubes of gunpowder with a stick for stability), and the earliest cannons (bronze tubes that fired stone or iron balls).

The critical insight — the step from firework to weapon — was containment. Gunpowder burned in the open produces a flash and a bang. Gunpowder contained in a sealed vessel produces an explosion, because the gases have nowhere to go. Gunpowder contained in a tube with one open end and a projectile produces a gun — the gases expand, pushing the projectile out at high velocity.

The Spread

Gunpowder reached the Islamic world by the 13th century, probably via the Mongol conquests and the Silk Road trade routes. Arab chemists documented the recipe and improved the formulation — they discovered that purifying the saltpetre (dissolving it in water, filtering out impurities, and recrystallizing) produced a more powerful mixture.

It reached Europe by the mid-13th century. The English friar Roger Bacon described the recipe in 1267 (encrypted in an anagram to keep it secret). By the 14th century, European armies were using cannons — and the age of castles, knights, and feudal warfare was coming to an end. No stone wall could withstand a sustained bombardment. No armoured knight could survive a musket ball.

The Lesson

Gunpowder is a reminder that chemistry is not morally neutral. The same reaction that delights a crowd at a fireworks display can destroy a city. The same understanding of oxidation, ignition temperature, and gas expansion that enables a beautiful Roman candle also enables a cannon.

The Chinese alchemists wanted immortality. What they found was a mixture that would, over the following millennium, kill more human beings than any other invention in history — until the nuclear weapons that the Manhattan Project built eight centuries later.

Science gives us power. What we do with it is not a chemistry question. It is a human one.

The end.

Try It Yourself

Choose your level. Everyone starts with the story — the code gets deeper as you go.

Story Progress

0%

Ready to Start Coding?

Here is a taste of what Level 1 looks like for this lesson:

Level 1: Explorer — Python
import numpy as np
import matplotlib.pyplot as plt

# Your first data analysis with Python
data = [45, 52, 38, 67, 41, 55, 48]  # measurements
mean = np.mean(data)

plt.bar(range(len(data)), data)
plt.axhline(mean, color='red', linestyle='--', label=f'Mean: {mean:.1f}')
plt.xlabel("Sample")
plt.ylabel("Value")
plt.title("Combustion Chemistry & Gas Laws — Sample Data")
plt.legend()
plt.show()

This is just the first of 6 coding exercises in Level 1. By Level 4, you will build: Build a Propellant Chemistry Simulator.

Free

Level 0: Listener

Stories, science concepts, diagrams, quizzes. No coding.

You are here

Enrolled

Levels 1-4

Python, NumPy, Matplotlib, real projects, mentorship.

Sign Up Free

Stay Updated

Join Waitlist

Get notified when enrollment opens for your area.

Notify Me

Level 0 is always free. Coding levels (1-4) are part of our 12-Month Curriculum.