尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗This repository collects 49 military anthropometric surveys from around the world. For each survey it records the study report (with a PDF link where one exists), the citation, the corrected survey facts, and the status of the individual-level data. Where that data can be downloaded for free, a copy is included.
surveys.yaml is the source of truth; surveys.csv and surveys.json are generated from it), plus link_status.csv, the latest automated link check.| Count | |
|---|---|
| Surveys catalogued | 49 |
Individual-level data free to download (copies in data/) | 4: ANSUR 1988, ANSUR II 2012, ASRAN 2015, USAF 1967 |
| Free study PDF or open-access paper | 22 |
| Commercial data | 1 (CAESAR, sold by SAE International) |
| Entries fully verified / partly verified / not verified | 13 / 13 / 23 |
| Survey | Subjects | Variables | Files | Licence |
|---|---|---|---|---|
| ANSUR 1988 (US Army) | 1,774 men, 2,208 women | 131 | data/ansur-1988/ | Public domain (US Government) |
| ANSUR II 2012 (US Army) | 4,082 men, 1,986 women | 93 measured + 14 demographic | data/ansur-ii-2012/ | Public domain (US Government) |
| ASRAN 2015 (Royal Australian Navy) | 1,090 men, 232 women | 87 | data/asran-2015/ | CC BY 3.0 AU |
| USAF 1967 (flying personnel) | 2,420 men | 202 | data/usaf-1967/ | US Government data; the R package is GPL (>= 2) |
⚠️ Units: In both ANSUR datasets, body mass is stored in hectograms, even in the ANSUR II column named
weightkg. Divide by 10 to get kg. Lengths are in mm. The ANSUR II male CSV is Latin-1 encoded. See data/README.md for more.
Python
import pandas as pd
ansur2_m = pd.read_csv("data/ansur-ii-2012/ANSUR_II_MALE_Public.csv", encoding="latin-1")
ansur2_m["mass_kg"] = ansur2_m["weightkg"] / 10
ansur88_w = pd.read_csv("data/ansur-1988/ansurWomen.csv", encoding="utf-8-sig")
asran_f = pd.read_csv("data/asran-2015/ASRAN_2015_female.csv")
usaf67 = pd.read_csv("data/usaf-1967/USAF1967.csv")
catalog = pd.read_csv("catalog/surveys.csv")
catalog[catalog.data_access == "public"]
R
ansur2_f <- read.csv("data/ansur-ii-2012/ANSUR_II_FEMALE_Public.csv")
usaf67 <- read.csv("data/usaf-1967/USAF1967.csv", check.names = FALSE)
# The same USAF 1967 data ships with CRAN:
# install.packages("Anthropometry"); data(USAFSurvey, package = "Anthropometry")
Install the dependencies with pip install -r requirements.txt.
| Command | What it does |
|---|---|
python scripts/build_catalog.py | Validates catalog/*.yaml and regenerates surveys.csv, surveys.json, additional_reports.csv and CATALOG.md. Add --check to run it in CI. |
python scripts/fetch.py verify | Checks the committed datasets against data/SHA256SUMS. Works offline. |
python scripts/fetch.py data | Downloads the datasets again from their original sources, then verifies them. |
python scripts/fetch.py reports | Downloads every study PDF in the catalog to reports/<survey-id>/. This folder is git-ignored. |
python scripts/fetch.py check-links | Requests every link and writes catalog/link_status.csv, marking each one ok, blocked or broken. |
python scripts/build_asran_csv.py | Extracts per-sex CSVs from the ASRAN workbook. |
python scripts/build_usaf1967_csv.py | Converts the fixed-width AFFLY67.dat into a CSV with named columns. |
About DTIC links. Most study PDFs are hosted on the Defense Technical Information Center (apps.dtic.mil). DTIC and some publishers reject scripted requests from cloud IP addresses with HTTP 403, so the link checker marks their links blocked, not broken. Open them in a browser. DTIC also sometimes shows a "scheduled maintenance" page, so test the links again before you cite them. The study PDFs are linked rather than committed, apart from the report copies that ODL hosts. You can download those with fetch.py reports.
| Region | Entries |
|---|---|
| United States | 14 |
| United Kingdom | 4 |
| Canada / Australia / New Zealand | 8 |
| Europe / Other | 11 |
| Asia-Pacific / Middle East / Latin America | 12 |
The website is a static single-page app in site/. It has seven sections:
aggregates/). A ranking (dot plot and table), a matrix of countries × measures, and a per-population view where every row links to the paper and page it came from. Filter by measure, sex, country, role and minimum sample size.The database is described in database/README.md. The browser downloads it once (about 5 MB compressed) and runs every query locally with sql.js, so no server is needed.
python scripts/build_database.py # database/anthro.sqlite only
python scripts/build_site.py # database + site into public/
python -m http.server -d public 8000 # preview at http://localhost:8000
Papers and Google Drive. python scripts/fetch.py reports downloads every paper into reports/ (git-ignored, about 600 MB; DTIC blocks scripts, so it falls back to the Internet Archive copy). python scripts/build_papers.py writes the index catalog/papers.csv. A Google Drive folder holds the paper index and a country/role summary as Google Sheets (private, shared on request). Drive cannot import files from a URL, so scripts/drive_import.gs is a Google Apps Script that copies all the open PDFs into that folder from your own account; see the README in the folder.
To deploy on Vercel: choose Add New → Project, import this repository, and keep the settings from vercel.json (no framework, build command python3 scripts/build_site.py, output directory public). Every push to main redeploys the site.
The Digital human tab (site/js/human/, design in docs/human3d/DESIGN.md) builds a posable 3D mannequin from a population, a real person, an imported file or a manual stature and mass: a 77-joint rig with ranges of motion, a skin generated from the measured girths, the mapping of every measure to every bone and a fit report (MODEL.md). It has a library of 200+ postures (POSE.md), a joint and IK posture editor (EDITOR.md, IK.md), a sandbox with seats, displays, boxes and tools, sit/grab/reach placement and distance measurements (PLACE_ANALYSIS.md), posture angle analysis (METRICS.md) and export to GLB, OBJ, STL, BVH, CSV and an exchange JSON (EXPORT.md). Every posture, scene object and interaction (sitting, a hand on a grip, looking at a display, lifting a load) is tagged MIL-STD-1472H compliant, not compliant or to check, with the clauses that decide it (). three.js r180 (MIT) is vendored in . Tests: (Node 22; browser tests: ).
standards/mil-std-1472h/ lists 1,726 requirements of MIL-STD-1472H (DoD Human Engineering, 15 September 2020) that the website could check or report. Each requirement gives its paragraph, page, numeric limits and how the Digital human tab would check it. That covers stairs, ladders, doors, hatches, consoles, seats, displays, labels, reach, range of motion, lifting, carrying, handles, controls, valves and vehicle stations. The README explains the standard's accommodation rules, maps the requirements to the site's features, lists where the current sandbox ranges disagree with 1472H, and proposes a build order. python scripts/build_standards.py validates the list and regenerates the CSV.
anthro_service/ serves the country × role × sex percentiles (P5/P50/P95 or any percentile of up to 571 measures, with reliability and sources) to tools that build mannequins and digital humans (CATIA Human Builder, Jack, RAMSIS, AutoCAD scripts, Blender) and to AI assistants:
Static files at /api/v1/… on the deployed site (python scripts/build_site.py writes them): JSON and CSV per population, no server.
REST API with an OpenAPI description, CSV and XML output: pip install -r anthro_service/requirements.txt && python -m anthro_service serve.
MCP server for Claude Desktop, Claude Code, Cursor and other MCP clients: python -m anthro_service mcp.
Send to CAD: the Digital human's Export tab pushes the figure you built (measures, dimensions, posture) to this server (POST /v1/profiles); CATIA and other tools read it back from /v1/profiles/latest/values, /angles and /points (or the VBA functions AnthroProfile, AnthroProfileAngles), and AI assistants through the MCP tools list_pushed_profiles and get_pushed_profile. Without a browser: python -m anthro_service push FILE.json.
See anthro_service/README.md for the endpoints, the percentile and reliability definitions, examples (Python, VBA, PowerShell, curl) and the licence caveat for commercial use.
To add a source or fix an entry:
catalog/surveys.yaml.python scripts/build_catalog.py.If you add a dataset, put it under data/<survey-id>/, add its local: path to the catalog entry, and update data/SHA256SUMS.
The datasets keep their original licences, listed above and in data/README.md. If you use ASRAN, you must credit the Commonwealth of Australia (Defence Science and Technology Group) under CC BY 3.0 AU. The US Government reports and datasets are in the public domain. The NZDFAS monograph is CC BY-NC 4.0.
MIL_STD_1472H.mdsite/vendor/threenode --import ./tests/human3d/register.mjs --test "tests/human3d/*.test.mjs"REQUIRE_BROWSER=1 python3 -m pytest tests/human3d/test_*.py