尚未检测到更新。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