Juniper
Juniper is an .NET 7 and TypeScript framework for building WebXR applications. It is an evolution of my previous project, Primrose. View the Juniper GitHub repository.
Juniper provides a number of major elements:
- A light set of conventions for configuring ASP.NET Core projects with Kestrel.
- A build tool, based on ESBuild, for managing TypeScript projects.
-
C# libraries for a variety of tasks:
- configuring HTTP servers (Kestrel),
- graph solving,
- units of measure conversion, and
- media asset management, decoding, and processing.
-
TypeScript libraries for a very wide variety of tasks:
- a framework for building WebXR applications,
- reusable components for Three.js, including an event system, text rendering, and an Environment metaphor for WebXR apps
- managing complex, spatialized WebAudio graphs,
- managing WebRTC teleconferencing sessions,
- speech recognition,
- structured manipulation of the browser DOM and CSS,
- WebWorkers with async/await-capable wrapper interfaces,
- DOM widget objects, including: dialog boxes, tab panels, dock panels, tree views, property lists, and context menus,
- asynchronous request management with progress tracking, IndexedDB caching, and media type awareness,
- text rendering and animation with 2D HTML Canvas image rendering,
- an async/await-capable wrapper around IndexedDB,
- XUnit-style testing framework,
- logging and testing of DOM and WebGL apps,
- an addressable lookup of Unicode Emoji code points,
- an addressable lookup of extant Media Types,
- graph and tree collections,
- typesafe event handlers,
- units of measure conversion, and
- string manipulation and similarity matching.