Human Atlas Hit 3,407 Stars on 401 Lines of App Code and 90 MB of Anatomy
A 3D anatomy explorer with 2,234 selectable meshes went from zero to 3,407 stars in nine days on eight commits. We cloned it, built it, and ran its own validator against every claim in the README.
The WJS Desk
Sep 14, 2026 · 6 min read

A repository called ashemag/human-atlas went from its first commit on 4 September 2026 to 3,407 stars by the time we looked on 14 September. Nine days. It is an interactive 3D anatomy explorer that loads the BodyParts3D adult male reference into a browser and lets you pull it apart into 2,234 individually selectable meshes.
Two things about that made us clone it rather than scroll past. The whole thing is eight commits, all from one person, and the last one landed on 6 September. And the README leads with very specific numbers (2,234 meshes, 3,432 named concepts, 2,288,268 triangles) which is either unusually rigorous or unusually confident.
What it actually is
A Vite and React app that renders the anatomy with Three.js, with the geometry pre-baked into binary chunks rather than loaded as OBJ at runtime. You orbit, click a structure, toggle any of 15 anatomical systems, search 3,432 concept names, or hit the exploded view and get a spaced-out inventory of every visible piece.
The surprising part is the size of the thing that does this. We counted the application source, excluding the vendored component library:
app/scene.tsx 134
app/globals.css 88
app/page.tsx 52
app/anatomy.ts 36
hooks/use-mobile.ts 21
app/pointer-tap.ts 21
app/explosion-layout.ts 14
app/agent-tools.ts 13
app/model-download.ts 11
lib/utils.ts 6
web/main.tsx 4
----
401
401 lines. The reason that works is in the README's "How it works" note: geometry is merged into batches and per-structure GPU textures drive translation, visibility, and selection, so there are not 2,234 draw calls. The hard work is in the offline conversion scripts, not the runtime.
We built it, and we checked every number
npm ci pulled 567 packages in 8 seconds. tsc --noEmit came back clean in 2.6 seconds. vite build finished in 724 milliseconds across 2,475 modules. Nothing broke, which is not what we expected from a nine-day-old repo.
Then we ran the two validators the README documents, which is the part worth the whole article:
$ node scripts/validate-atlas.mjs
Verified 2234 individually indexed meshes, 3432 complete concept
mappings, 2,288,268 triangles, and every binary buffer.
$ node scripts/validate-interactions.mjs
atlas.json: packing at desktop/mobile aspect ratios and
search/inspection contracts passed.
Tap, drag, multitouch, cancellation, and empty-view checks passed.
The repo ships a script that reproduces its own headline claims from the actual data files. We have covered a lot of repos with big numbers in the README and this is the first one that hands you the tool to check them.
| Claim | What the README says | What we measured |
|---|---|---|
| Selectable meshes | 2,234 | 2,234 |
| Named concepts | 3,432 | 3,432 |
| Triangles | 2,288,268 | 2,288,268 |
| Compressed geometry | "approximately 33 MB" | 31 MB across 15 .gz files |
| JS bundle | not stated | 916 kB, 264 kB gzipped, one chunk |
| Repo checkout | not stated | 203 MB, 113 MB of it .git |
| Commits since publish | not stated | Zero in eight days |
We also started the dev server. It was ready in 155 ms, served the page, and served atlas.json (1,335,285 bytes) and body-0.bin.gz (2,257,262 bytes) on request. We did not open it in a browser and look at the render, so we are reporting that the assets load and the validators pass, not that the model looks right on screen. The maintainer is explicit about the same gap: the README says physical-device performance and real multitouch hardware have not been tested.
What it does not do
- It is male-only. The fifth commit is literally named "Publish male-only Human Atlas as open source". Earlier revisions carried a female reference anatomy from the HuBMAP Human Reference Atlas, and it was taken out before publication. The attribution file documents it under "Historical assets (not included in the current release)", which is honest, but if you need both you are building it yourself.
- It is one body, not human variation. BodyParts3D is a single adult male reference derived from the TARO MRI dataset. The README says so twice.
- It is not clinical. Stated plainly in both the README and the attribution file. Educational explorer, not a diagnostic tool.
- No code splitting. Everything is one 916 kB chunk and the build prints the Vite warning about it.
- Skeleton and muscle coverage is partial in the female dataset that is no longer shipped, and the current male set is meshes rather than a rigged or animatable model.
The thing we expected to be a problem, and was not
Our first assumption was a licensing trap. BodyParts3D's OBJ files carry comment headers referencing CC BY-SA 2.1 Japan, which is a share-alike licence, and the repo is MIT. That combination usually means someone did not read the data licence.
They read it. public/ATTRIBUTION.md names the dataset version, the exact archive filename, the DOI of the 2009 paper, every geometry adaptation applied, and then addresses the discrepancy head on: the current official database licence is CC BY 4.0 and supersedes the legacy text in the OBJ comments. The README separates the two licences explicitly. This is better attribution practice than most funded projects manage.
Who made it, and the bus factor
One person, Ashe Magalhaes, with 8 of 8 commits. That is a bus factor of one, and the repo has not been touched since 6 September.
The 823 forks against only 20 watchers is a ratio worth reading correctly. We sampled the newest forks and every one had zero stars and a push date of 6 September, which is the signature of people clicking deploy-to-Vercel rather than a contributor base. Treat the fork count as traffic, not as help.
The mitigating factor is that 401 lines of application code is trivially vendorable. If this stalls permanently, the valuable artifact is the 90 MB of pre-converted geometry and the conversion scripts, and both are CC BY 4.0 and MIT respectively. You can take them.
The hidden cost: the geometry is checked into git in both compressed and uncompressed form, so a clone is 203 MB with 113 MB of history for a project that is nine days old. Your users then download roughly 31 MB of geometry on first load. Neither number is a dealbreaker for a demo. Both are a problem if you were planning to fork this into something with a CI pipeline or a mobile audience.
The dependency list is worse than the bundle
The repo vendors 60 shadcn components totalling 7,565 lines. We checked which ones the app actually imports: six of them (badge, button, combobox, sheet, slider, switch), worth 631 lines. The other 54 include a calendar, a carousel, a chart component pulling in recharts, and a one-time-password input, in a 3D anatomy viewer.
We assumed that was bloating the bundle, so we grepped the built output for recharts, embla, react-day-picker and input-otp. None of them are in it. Tree shaking does its job. So this is a repo hygiene complaint, not a performance one, and we would rather say that than leave a wrong implication standing. The 916 kB is mostly Three.js and Base UI doing real work.
The repo ships a script that reproduces its own headline claims. That is the feature worth copying.
Verdict
Adopt today if you want a working, correctly attributed, browser-native anatomy viewer for teaching or a demo, and you can live with a male-only reference. It builds clean, the data provenance is documented better than the norm, and the licences are separated properly.
Wait if you need female anatomy, mobile performance guarantees, or any assurance of maintenance. Eight commits, one author, and eight days of silence is not yet a project.
What would change our mind: a second contributor landing a non-trivial commit, or the female dataset coming back. Either would turn this from an impressive artifact into something you could plan around.
Your turn
If you have shipped a repo with big numbers in the README: did you ship anything that lets a stranger verify them, and if not, how long would it take you to write it? For most projects the honest answer is an afternoon, which is what makes its absence everywhere interesting.
We keep running into this shape of repo, thousands of stars sitting on a handful of commits. The closest comparison we have written is arc-task-gen, which hit 11,000 stars on 12 commits, and it is worth reading next because that one had a central claim we specifically could not check. This one shipped the checker.


