human-atlas README

The project's README from github.com/ashemag/human-atlas. As one markdown file: README.md.

Human Atlas

An interactive 3D anatomy explorer built with React, Three.js, and shadcn/ui. Take the BodyParts3D adult male reference apart into 2,234 individually selectable meshes, explore 15 anatomical systems, and search 3,432 named concepts.

Explore the live demo

Explore

Run locally

Requires Node.js 22.13 or newer. No API keys or accounts are needed.

npm ci
npm run dev

Open http://localhost:3016. To build the static site, run npm run build; the output is in dist/.

Validate

npm run check
node scripts/validate-atlas.mjs
node scripts/validate-interactions.mjs
npm run build

Validation covers mesh buffers, names and concept membership, nonoverlapping exploded layouts at desktop and mobile aspect ratios, search and inspection contracts, and tap-versus-drag handling. Browser interaction checks have exercised selection, system controls, search, isolation, rotation, and 390×844, 320×568, and 844×390 layouts. Phone controls stay clear of the exploded inventory, and isolated structures fit the space above or beside the detail panel. Physical-device performance and real multitouch hardware have not been tested.

Anatomy data

The current viewer uses BodyParts3D 4.0, an adult male reference anatomy, licensed CC BY 4.0. It does not represent every human structure or variation. Individual source meshes are distinct from named concepts, which may group multiple meshes. Descriptions distinguish general system context from individual organ explanations.

Geometry is simplified for browser performance while retaining every source mesh. The packaged model contains 2,288,268 triangles and downloads approximately 33 MB of compressed geometry. Full credits, source links, and adaptation details are in ATTRIBUTION.md.

This is an educational explorer, not a diagnostic or surgical tool.

How it works

Geometry is merged into batches. Per-structure GPU textures control translation, visibility, and selection, while component geometry supports accurate picking. Exploded layouts pack only the visible pieces. Rendering updates when the scene changes; orbit controls remain responsive without thousands of separate draw calls.

The optional WebMCP tools expose anatomy search and inspection in compatible browsers. The visible interface works without them.

Rebuilding geometry

The repository includes browser-ready geometry. Rebuilding it is optional: obtain the official BodyParts3D OBJ archive and English metadata tables, prepare the joined concepts and display-system mappings, run scripts/convert-anatomy.py, then node scripts/optimize-anatomy.mjs and node scripts/compress-models.mjs. Simplification uses a 0.2% relative error limit per structure.

Deploy

Import this repository into Vercel as a Vite project. The included vercel.json configures npm ci, npm run build, and the dist output directory. It can also be served by a static host.

License

Original application code is released under the MIT License. The anatomy data has its own CC BY 4.0 license; preserve the attribution when redistributing it. Third-party dependencies retain their respective licenses.

Issues and pull requests are welcome. Please include reproduction steps and browser/device details for interaction problems.

human-atlas (ashemag/human-atlas)

Searching Database…

这是什么?一个可以直接在浏览器里使用的交互式 3D 人体解剖浏览器:它把 BodyParts3D 成年男性参考模型拆成了 2,234 个可以单独选中的网格,包含 15 个人体系统,还有 3,432 个可以搜索的命名概念。
它是网站,还是需要安装的软件?不需要安装任何东西——它是一个用 React、Three.js 和 shadcn/ui 搭建的网页应用。既有在线演示,你也可以自己构建静态网站,部署到 Vercel 或任何静态托管服务上。
我怎么在本地运行它?克隆仓库,安装 Node.js 22.13 或更高版本,然后运行 npm install 和 npm run dev(Vite 在 3016 端口提供服务)。不需要任何 API 密钥或账号;npm run build 会把静态网站输出到 dist/ 目录。
我能把它用于医疗或临床工作吗?不能——README 明确说明这是一个教育用途的浏览器,不是诊断或手术工具。为了在浏览器里流畅运行,几何模型做了简化,不过每一个原始网格都保留了下来。
爆炸视图到底是什么?你可以从拼合完整的人体切换到一个散开摆放的清单,看清每一个可见的部件。爆炸布局只排列当前可见的部件,并且在桌面端和手机端的屏幕比例下都验证过不会相互重叠。
可选的 WebMCP 工具是什么?可选的 WebMCP 工具可以在兼容的浏览器里提供解剖搜索和查看功能。没有它们,看得见的界面也完全能用,所以它们只是锦上添花,并非必需。
我能从原始数据重新生成 3D 几何模型吗?可以,不过仓库里已经附带了适合浏览器使用的几何数据。如果需要,你可以下载官方的 BodyParts3D OBJ 压缩包和元数据表,运行 scripts/convert-anatomy.py,然后再运行用于优化和压缩的 Node 脚本;简化时每个结构使用 0.2% 的相对误差上限。
Creator
ashemag
Size
101.7 MB
Stars
4.3K
Updated
CommitSep 06
Age
1mo
Commits · 90 Days