Open source course definitions for OCP Academy SCORM courses.
This repository stores editable course source: course.json, narration scripts when applicable, and course-owned media. It does not store generated audio, rendered HTML, SCORM zip files, or the original research materials used during course development.
The courses in this repository are generally hosted on OCP Academy, primarily in its catalog of Data Center Technology courses.
It also includes the academy-wizard Codex skill used to author and rebuild courses so contributors can reproduce the package generation flow from a clone.
AcademyWizard supports two explicit values for the top-level style property in course.json:
| Style | Learner experience | Source shape | Typical media |
|---|---|---|---|
Slides |
Narrated, previous/next slide navigation | modules[].slides[] |
Narration scripts, generated audio, figures, and teaching animations |
Scrolling |
Lesson table of contents, vertical content, Continue gates, and in-page interactions | lessons[].blocks[] |
Images, videos, captions, documents, and course-specific interaction settings |
Slides remains the default when style is omitted. Scrolling courses are emitted as one standalone SCORM course per course.json; a multi-course learning sequence is assembled in the LMS rather than combined into one package.
See Course styles for the authoring and fidelity contract.
courses/
<slides-course>/
course.json # canonical English source
audio/
figures/
locales/
ko-KR/ # self-contained translated source
fr-FR/
ai-computing-continuum/
build-your-brand-in-the-ocp-community/
cooling-fluids-in-direct-liquid-cooling/
diablo-400-disaggregated-power-for-high-density-ai-racks/
high-bandwidth-flash/
integrating-quantum-processing-units-into-data-center-infrastructure/
intro-to-ocp/
module-1-the-ocp-origins/
module-2-the-ocp-ecosystem-governance/
module-3-ocp-technologies-open-rack-cooling/
module-4-today-and-tomorrow-the-journey/
multipath-reliable-connection-mrc/
ocp-esun-ethernet-for-scale-up-networks/
ocp-mhs-modular-plug-and-play-m-pnp/
ocp-nic-3-0-technical-overview/
ocp-orientation/
understanding-and-procuring-open-technologies-and-products/
introduction-to-the-ocp-solution-provider-program/
ocp-volunteer-leadership-guide/
ocp-ready-data-center-recognition-program/
ocp-contribution-process/
ocp-ready-requirements-for-energy-storage-systems/
ocp-solid-state-transformers/
open-rack-v3/
module-1-ocp-orv3-history-and-impact/
module-2-orv3-core-specifications/
module-3-orv3-real-world-implementations/
module-4-orv3-high-power-racks/
module-5-orv3-future-trends/
module-6-the-open-rack-wide-orw-expansion/
module-7-advanced-orw-liquid-cooling-practice/
optics/
enhanced-telemetry-optics/
introduction-to-emerging-optical-technologies/
project-deschutes-cdu-specification-v1-0/
short-reach-optical-interconnects-sroi-for-ai-scale-up-fabrics/
two-phase-direct-liquid-cooling-efficiencies-and-fluids/
scripts/
build-course.sh
install-academy-wizard-skill.sh
skills/
academy-wizard/
The bundled skill lives at:
skills/academy-wizard
The build script uses the repo-local AcademyWizard copy by default, so installing the skill is optional for command-line builds. Install it into Codex when you want to interactively create or revise courses:
./scripts/install-academy-wizard-skill.shAdd --force to replace an existing local copy:
./scripts/install-academy-wizard-skill.sh --forceThe installer copies the skill to:
${CODEX_HOME:-$HOME/.codex}/skills/academy-wizard
Restart Codex or start a new Codex session after installing so the skill list refreshes.
To use the skill interactively, ask Codex for AcademyWizard work, for example:
Use AcademyWizard to build a Scrolling course from the course source in this repository.
| Folder | Course |
|---|---|
ai-computing-continuum |
AI Computing Continuum: Extending AI Beyond the Hyperscale Data Center |
build-your-brand-in-the-ocp-community |
How to Build Your Brand in the OCP Community |
cooling-fluids-in-direct-liquid-cooling |
Cooling Fluids in Direct Liquid Cooling (DLC) |
diablo-400-disaggregated-power-for-high-density-ai-racks |
OCP Diablo 400: Disaggregated Power for High-Density AI Racks |
high-bandwidth-flash |
High Bandwidth Flash: Bridging SSD Capacity and HBM Performance |
integrating-quantum-processing-units-into-data-center-infrastructure |
Integrating Quantum Processing Units into Data Center Infrastructure |
intro-to-ocp/module-1-the-ocp-origins |
Module 1: The OCP Origins |
intro-to-ocp/module-2-the-ocp-ecosystem-governance |
Module 2: The OCP Ecosystem & Governance |
intro-to-ocp/module-3-ocp-technologies-open-rack-cooling |
Module 3: OCP Technologies (Open Rack & Cooling) |
intro-to-ocp/module-4-today-and-tomorrow-the-journey |
Module 4: Today and Tomorrow (The Journey) |
multipath-reliable-connection-mrc |
OCP Academy - MRC Technical Overview |
ocp-esun-ethernet-for-scale-up-networks |
OCP ESUN: Ethernet for Scale-Up Networks |
ocp-mhs-modular-plug-and-play-m-pnp |
OCP MHS Modular Plug-and-Play (M-PNP) |
ocp-nic-3-0-technical-overview |
OCP NIC 3.0 Technical Overview |
ocp-orientation/understanding-and-procuring-open-technologies-and-products |
Understanding and Procuring Open Technologies and Products |
ocp-orientation/introduction-to-the-ocp-solution-provider-program |
Introduction to the OCP Solution Provider Program |
ocp-orientation/ocp-volunteer-leadership-guide |
OCP's Volunteer Leadership Guide |
ocp-orientation/ocp-ready-data-center-recognition-program |
OCP Ready™ Data Center Recognition Program |
ocp-orientation/ocp-contribution-process |
OCP Contribution Process |
ocp-ready-requirements-for-energy-storage-systems |
OCP Ready™ Requirements for Energy Storage Systems |
ocp-solid-state-transformers |
OCP Solid State Transformers: From Medium Voltage to 800 VDC |
open-rack-v3/module-1-ocp-orv3-history-and-impact |
Module 1: OCP & ORv3: History and Impact |
open-rack-v3/module-2-orv3-core-specifications |
Module 2: ORv3 Core Specifications |
open-rack-v3/module-3-orv3-real-world-implementations |
Module 3: ORv3 Real World Implementations |
open-rack-v3/module-4-orv3-high-power-racks |
Module 4: ORv3 High Power Racks |
open-rack-v3/module-5-orv3-future-trends |
Module 5: ORv3 Future Trends |
open-rack-v3/module-6-the-open-rack-wide-orw-expansion |
Module 6 - The Open Rack Wide (ORW) Expansion |
open-rack-v3/module-7-advanced-orw-liquid-cooling-practice |
Module 7 - Advanced ORW Liquid Cooling & Practice |
optics/enhanced-telemetry-optics |
Enhanced Telemetry Optics |
optics/introduction-to-emerging-optical-technologies |
Introduction to Emerging Optical Technologies |
project-deschutes-cdu-specification-v1-0 |
OCP Project Deschutes |
short-reach-optical-interconnects-sroi-for-ai-scale-up-fabrics |
Short-Reach Optical Interconnects for AI Scale-Up Fabrics |
two-phase-direct-liquid-cooling-efficiencies-and-fluids |
Two-Phase Direct Liquid Cooling Efficiencies and Fluids |
The build uses the bundled AcademyWizard skill by default and selects the Slides or Scrolling pipeline from course.json.
To build a narrated Slides course:
export ELEVENLABS_API_KEY="<your key>"
./scripts/build-course.sh cooling-fluids-in-direct-liquid-coolingThe output is written under build/, including the rendered course folder and LMS-ready SCORM zip.
Keep the existing course root as the canonical English source. Scaffold each additional language beneath a BCP 47 locale folder:
python skills/academy-wizard/scripts/scaffold_slides_translation.py \
courses/ocp-esun-ethernet-for-scale-up-networks/course.json ko-KR \
--language-name KoreanThis creates a self-contained editable source under
courses/ocp-esun-ethernet-for-scale-up-networks/locales/ko-KR/. Translate its
course.json, narration scripts, and text-bearing media, then build it as an
independent package:
export ELEVENLABS_API_KEY="<your key>"
./scripts/build-course.sh ocp-esun-ethernet-for-scale-up-networks/locales/ko-KRThe visible course title remains unchanged. The SCORM manifest title adds the
English language name, such as OCP ESUN (Korean), so LMS asset lists can
distinguish editions. See
skills/academy-wizard/references/slides_translation.md for the complete
translation and QA workflow.
Published editions are available on the OCP Academy Translated Learning page.
To build one standalone course in the Intro to OCP Scrolling series, no narration API key is required:
./scripts/build-course.sh intro-to-ocp/module-1-the-ocp-originsThis writes the package folder and zip beneath build/intro-to-ocp/. Run the same command with each sibling folder to produce the four independent LMS packages.
The script defaults to the bundled skill under skills/academy-wizard. If you use a different skill location:
ACADEMY_WIZARD_SKILL_DIR=/path/to/academy-wizard ./scripts/build-course.sh two-phase-direct-liquid-cooling-efficiencies-and-fluidsFor local QA with previously generated audio, set EXISTING_AUDIO_DIR to a folder shaped like audio/:
EXISTING_AUDIO_DIR=/path/to/audio ./scripts/build-course.sh two-phase-direct-liquid-cooling-efficiencies-and-fluidsUse pull requests for course improvements.
- For new course or series contributions, please give a heads-up to the OCP Academy team at the OCP Foundation with an email and submission here. New submissions must align to the contributions and project areas of the OCP Community.
- Edit slide text, quiz content, figures, and structure in
course.json. - For Slides courses, edit narration in
courses/<course-path>/audio/moduleN/slide_*.txt. - Store translated course sources in
courses/<course-path>/locales/<BCP-47 tag>/; Slides locales are self-contained, while Scrolling locales overlay language-specific resources on the canonical course. - When committing a translated course source, run
python skills/academy-wizard/scripts/update_translation_catalog.pyto refresh the root README translation table. - For Scrolling courses, retain learner media under
resources/and preserve source-specific interaction, typography, spacing, motion, control-art, and caption metadata incourse.json. - Do not commit generated
.wav,module*.html,index.html,imsmanifest.xml, or.zipfiles. - Run the build script before opening a PR when possible.
The build renders the selected style, validates the package, and creates a strict LMS zip. Slides builds also regenerate audio from checked-in narration scripts unless existing audio or SKIP_AUDIO=1 is supplied.