CFF Libraries
The CFF libraries are various modules for 3D visualization and editing on the AXS platform.
Purpose
This document provides an overview of the Clinical Frontend Framework (CFF) libraries, which are modules designed for 3D visualization and editing on the AXS platform.
Demos and Documentation
Explore live demos and detailed documentation in Storybook.
Additional information about this project can be found on the Confluence page for the project.
Contributing
To contribute to this project, refer to the CONTRIBUTING.md file for guidelines.
Tools
The following tools are available in the CFF libraries:
- StripCamera
- Intersections
- Half-Edge Graph Custom Data
- Interactor Stack
- Volumes
- Dual Depth Peeling
- Html Scene Node
- Matcap
- 3D Scene Node
- Sculpt Tool
- Lasso Selection
- Box Selection
- Spline Editor
- Transform Tool
- Trim Tool
This project follows the Inner-source model. For governance details, see GOVERNANCE.md.
Installation
The libraries require Node.js 20 and Yarn 4 (berry). Ensure you have the correct versions installed as specified in the .nvmrc file. Follow the steps below to set up your environment:
Prerequisites
- Git Configuration: Ensure proper line endings and commit signing. Refer to Git setup details.
- Node Version Manager (nvm): Install nvm to manage Node.js versions. For Windows, use nvm-windows.
- Yarn: Install Yarn by enabling corepack (
corepack enable). Refer to the Yarn installation guide.
Initializing Yarn
Run the initYarnrc.sh script to configure authentication for the Azure Artifacts registry. Follow the instructions in the Confluence page for the project to obtain your personal access token.
Development
To start development:
- Install dependencies using
yarn. - Launch the Storybook environment with
yarn dev.
Managing Dependencies
Use manypkg check to ensure dependency consistency across packages. Upgrade dependencies with:
yarn manypkg upgrade <package-name>
API Client Generation
API clients are generated from specifications during build processes. To force regeneration, run:
yarn generate --force
Versioning
The project uses beachball for versioning. Create change records with:
yarn change
After merging, the CI will handle version bumps, tagging, and publishing. Promote releases to stable using the release pipeline.