SceneryStack Libraries¶
Looking for the best way to start using SceneryStack? Head over to the Setup Guide.
NPM Package¶
SceneryStack package on GitHub
SceneryStack Repository List¶
All SceneryStack Repos on GitHub
Rendering & UI¶
Libraries focused on graphics rendering, UI elements, and interaction.
Repo | Category | Description | API Doc Progress | Example Doc Progress |
---|---|---|---|---|
Scenery | Graphics / Rendering | Foundational library for representing graphics, handling input, and cross-platform support. | ||
Alpenglow | Rendering Engine | Experimental rasterization engine by PhET Interactive Simulations. | ||
Sun | UI Components | Graphical user interface components such as buttons and checkboxes. Built using Scenery. | ||
Mobius | 3D Rendering | Embed 3D scenes in Scenery with Three.js. | ||
Twixt | Animation | Support for animation, easing, and tweening for UI or artwork. | ||
Joist | UI Framework | Common model/view for simulations, handling navigation, menus, and screen management. | ||
SceneryPhet | Reusable View Components | Reusable Scenery view components for simulations. |
Utilities¶
Libraries foundational to data structures, algorithms, and general functionality.
Repo | Category | Description | API Doc Progress | Example Doc Progress |
---|---|---|---|---|
Dot | Math / Core Utility | Mathematical objects such as Vector, Matrix, and corresponding numerical algorithms. | ||
Kite | Geometry / Core Utility | Shapes and geometry. Mathematics implemented using Dot. | ||
PhetCore | General Utility | Basic utility & support for data structures and algorithms. | ||
Assert | Core Utility | Minimal standalone assertion support. | ||
Tandem | Data Management | Simulation-side code to support name-object registration and PhET-iO instrumentation. |
Data Models & State Management¶
Libraries managing application state, event propagation, and data structures.
Repo | Category | Description | API Doc Progress | Example Doc Progress |
---|---|---|---|---|
Axon | State Management | Event-based model and data structures for the observer pattern. | ||
Bamboo | Data Visualization | Charting library built with Scenery. | ||
Vegas | Game Components | Reusable game components for interactive simulations. | ||
PhetCommon | Shared Components | Utility functions, model components, and analytics integrations. |
Interaction & Accessibility¶
Libraries that enhance interactivity and accessibility for users.
Repo | Category | Description | API Doc Progress | Example Doc Progress |
---|---|---|---|---|
Tambo | Audio / Sonification | Sound effects and sonification. Uses Axon for event handling. | ||
UtteranceQueue | Accessibility | Library for generating dynamic TTS using ARIA live regions. | ||
Tangible | Tangible Interaction | Library for handling computer vision and tangible input using MediaPipe. | ||
Tappi | Haptic Feedback | Support for haptics/vibrations in HTML5. | ||
Nitroglycerin | Specialized Interaction | Chemistry-specific code for interactive simulations. |
Tooling & Configuration¶
Libraries for building, testing, and extending applications.
Repo | Category | Description | API Doc Progress | Example Doc Progress |
---|---|---|---|---|
Chipper | Build Tools | Tools for developing and building interactives. | ||
QueryStringMachine | URL Parsing | A query string parser that supports type coercion, default values, and validation. | ||
Brand | Branding | Provides hooks for custom branding. | ||
Sherpa | Third-Party Libraries | Houses all 3rd-party dependencies. |
Extended Library Descriptions¶
Alpenglow¶
The alpenglow
library is an experimental rasterization engine.
- Rasterization Engine: It provides rasterization functionalities, which are essential for converting vector graphics into raster images.
- WebGPU Support: It includes experimental support for WebGPU, allowing advanced graphics rendering and computation on the web.
- Benchmarking Tools: It offers experimental benchmarking using WGSL (WebGPU Shading Language) for performance testing.
Scenery¶
The scenery
library is a versatile HTML5 scene graph library.
- Interactive Visual Experiences: Enables building interactive visual experiences that can be rendered using WebGL, SVG, Canvas, and other technologies.
- Multi-Platform Rendering: Supports rendering on multiple platforms, ensuring compatibility and flexibility in deployment.