@babon/client
v1.1.0
Published
Babon kinematics-as-a-service client. Video in, movement data out.
Maintainers
Readme
@babon/client
Kinematics-as-a-service client. Video in, movement data out.
npm install @babon/clientimport { Babon } from "@babon/client";
const run = await new Babon("bk_...").analyze("./trial.mp4");
await run.save("./out.zip");That's it.
A bit more
import { Babon } from "@babon/client";
const bb = new Babon("bk_...");
// clinical_report.json as a parsed object
const report = await (await bb.analyze("./trial.mp4")).data();
console.log(report.gait_parameters.gait_velocity_m_s);
// batch
await (await bb.analyze(["./a.mp4", "./b.mp4", "./c.mp4"])).save("./results/");
// tag with your own identifier
await (await bb.analyze("./trial.mp4", { label: "cohort-3-day-7" })).save("./out.zip");What's in the bundle
clinical_report.json (gait params, GRF, symmetry), 14 per-joint angle CSVs (ISB convention), raw rotation matrices, 3D joint positions, bodymodel.npz, grf_waveform.json, manifest.json with SHA-256 per file.
Errors
The client throws typed errors:
BabonAuthError— bad key, wrong environment, DPA not accepted.BabonQuotaExceeded— monthly limit, concurrent limit, or rate-limited.BabonInvalidVideo— file is not a recognised container.BabonInvalidLabel— label looks like a real name (ADR-0002).BabonRunFailed— pipeline failed.BabonTimeout—.wait()exceeded its timeout.
All carry .code (the API error code) and .requestId (the support handle).
What we are and are not
- Measurement only. Output is kinematics; clinical interpretation is yours.
- EU-cloud (Scaleway fr-par). Videos never leave the EU.
- Don't put real patient names in
labelor in your filenames. We reject name-shaped labels server-side.
Runtime
Requires Node 20+ (uses Web FormData + fetch + Node crypto/fs.promises).
Contact
[email protected] — onboarding, quota, bugs.
