PIE-QTI
Production-ready QTI 2.2/3.0 players and a PIE ↔ QTI 2.2 transformation framework.

Try the item demo (all interactions) or the assessment demo (navigation, sections, scoring).
Quickstart
Load, inspect, and verify QTI content
Start with the examples app: paste a single item into the item demo, upload an IMS content package in the package browser, then use compatibility diagnostics to see the detected QTI version, interactions, response variables, asset references, and public certification coverage.
1. Render
`@pie-qti/item-player` parses the XML, maps QTI 2.x/3.0 names, extracts interactions, and renders through standard components.
2. Score
`@pie-qti/qti-processing` builds response, outcome, and template processing into a shared AST that runs in browser or server contexts.
3. Package
IMS content package helpers open ZIPs, resolve manifests, list tests/items/assets, and keep public workflows clean-room friendly.
Why this exists
Partners exchange assessment content in QTI; modern delivery and authoring often happens in PIE. PIE-QTI provides both: rendering and transformation.
QTI Players (2.2/3.0)
- Item player: 21 interaction types, 45 operators, role-based rendering
- Assessment player: sections, navigation rules, submission modes, scoring
- Extensible: plugins + registries + custom operators
- Themable: web components + CSS variable contract
Transforms
- QTI → PIE: lossless when QTI originated from PIE, best-effort otherwise
- PIE → QTI: rebuild QTI, generate IMS content packages
- Tooling: CLI for batch upload/analyze/transform
Transform Libraries
Reusable QTI/PIE transform packages, CLI workflows, and reference examples.
Quick links
Develop
# Install dependencies
bun install
# Run checks
bun run check
# Preview GitHub Pages build
bun run build:pages
bun run preview:pages