Skip to content

About

An interactive 3D textbook for AP Physics 1 and AP Physics C

Resources

Stars

379 stars

Watchers

3 watching

Forks

Repository files navigation

Atlas of Physics

An interactive textbook. Each chapter is one simple motion drawn in 3D like a textbook diagram (paper solids, ink edges, one lit thing). No apparatus: only the moving object, its vectors, axes and graphs. Scroll turns the pages and moves the camera; hover lights a thing; click breaks it down (a vector into components, a graph into slope and area).

index.html              contents (chapter cards)
atlas.css               shared tokens (Anatomy light theme)
engine/
  render.js             renderer: paper shading + normal/depth ink edges, picking, explode, camera
  parts.js              paper materials, solid arrows, line helpers
kinematics/
  model.js              the physics (a ball thrown up; a projectile): every motion and number
  checks.mjs            invariants of the model — node <chapter>/checks.mjs (every chapter has one)
  world.js              the figure: ball, axis, arrows, strobe, graphs, projectile and shadow
  pages.js              chapter text (after the AP Physics graphic organizers), cameras, breakdowns
  practice.js           AP-style questions per page ({ pageIndex: [{ q, choices, answer, why } | { q, solution }] })
  main.js               scroll → page turn + camera; hover / click / Esc
newton/ circular/ energy/ momentum/ oscillations/ rotation/ fluids/
                        AP Physics 1 + Physics C: Mechanics, chapters 2–8 (Physics C pages tagged in their kicker)
electrostatics/ gauss/ potential/ capacitors/ circuits/ magnetism/ induction/
                        AP Physics C E&M, chapters 9–15
                        every chapter: model, checks, world, pages, main, index.html
engine/book.js          the shared book: scroll → page turn + camera, hover / click / tap, labels,
                        practice, deep links (<chapter>/#<page index>), pager on small screens
engine/xrefs.js         "Compare" analogies between chapters, shown on both pages
equations/              the AP equation sheets, each equation linked to the pages that show it
tools/shoot.mjs         headless screenshots of every page and a few opened parts
tools/uitest.mjs        one page by deep link: practice, compare links, overflow (any viewport, touch)
tools/taptest.mjs       phone viewport: a tap opens a breakdown
tools/perf.mjs          per-chapter load time, fps, script and layout cost
tools/allpages.mjs      every page by deep link: practice present, no console errors
tools/dumptext.mjs      the rendered text of every page of a chapter, for proofreading
tools/prof.mjs          CPU profile of one chapter; tools/loadprof.mjs the same for page load
tools/picktest.mjs      hover near a moving part, then click: does it open?
tools/scrolltest.mjs    scroll an overflowing left page to the bottom and screenshot it

Tools need npm install (puppeteer-core) and Chrome (set CHROME to its path if not at the macOS default). Screenshots: CHAPTER=newton PARTS=rest:0,car:5 node tools/shoot.mjs shots/newton (PARTS = key or key:page)

Run: python3 -m http.server 8137 (any static server; three.js loads from jsDelivr) and open http://127.0.0.1:8137/ Keys: ← → turn pages, Esc puts a part back. Links: newton/#4 opens page 2.4. Phones and tablets: the figure stacks over the text, swipes snap to whole pages, a tap breaks a part down; resolution steps down by itself if frames run slow.

AP® is a trademark of the College Board, which does not endorse this site. The equation sheet follows the published AP Physics equation tables.

MIT licensed.

About

An interactive 3D textbook for AP Physics 1 and AP Physics C

Resources

Stars

379 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages