Skip to content

SceneryStack Libraries

Looking for the best way to start using SceneryStack? Head over to the Setup Guide.

GET STARTED

NPM Package

SceneryStack package on GitHub

SceneryStack on npm

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.