Understand the periodic table instead of memorizing it. A short course and an interactive app that rebuild the table the way history did.
- Live site: https://krunalpanchal1995.github.io/openperiodictable/
- App: https://krunalpanchal1995.github.io/openperiodictable/app/
The app: Periodic Table Builder
Five stages, each a historical step the student repeats:
- Lavoisier (1789): sort 33 "simple substances" into elements, compounds and non-substances.
- Atomic weight (1860s): order the known elements; the pattern repeats.
- Mendeleev (1869): predict a missing element by averaging its neighbours.
- Moseley (1913): atomic number from measured X-ray energies.
- Shells (1920s): fill subshells in Madelung order and the 118-element table assembles itself.
app/index.html is one self-contained file. It is generated: python codes/app_data/make_app_data.py app/index.html
(CI checks that the committed file matches).
The course
| Session | Topic | Notes |
|---|---|---|
| 1 | Moseley's law and the atomic number | docx, md |
| 2 | What counts as an element: Lavoisier | docx, md |
Level: college (L3). Next: atomic weights from Dalton to Cannizzaro (1860), then Newlands and Mendeleev, then shells.
Run the code
python -m pip install -r requirements.txt
python -m pytest codes -q # tests
python course/001-moseley-atomic-number/figures/fig01_moseley_law.py # regenerate a figure
codes/xray/moseley (Moseley's law, K-alpha energies) and codes/chemistry/lavoisier (the 33 substances, mass balance) each have a README. The figure scripts find the repo root through STATE.md.
Check before relying on it
- Atomic weights in the app are abridged values typed from general knowledge, not copied from an IUPAC table.
- Some dates and the membership of Lavoisier's list come from secondary sources; the session notes flag where to confirm them.
- K-alpha energies come from the X-ray Data Booklet.
Main site: https://krunalpanchal1995.github.io/projects/periodic-table-course/. MIT licence.