JSAR: A Web Runtime for Embeddable Space

  • Supports Web-standard APIs, TypeScript and Babylon.js
  • Space-based Security, applications run in the space isolation framework, without interfering with each other.
  • Achieving rendering performance close to native by separating application layer
YodaOS JSAR: The embeddable AR runtime for JavaScript Developers
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 <xsml version="1.0"> <head> <title>YodaOS JSAR Gallery</title> <link id="model" rel="mesh" type="octstream/glb" href="./model/rokid_robot.small.glb" /> <style type="text/scss"> @keyframes rotate-self { 0% { rotation: 0 0 0; } 50% { rotation: 0 180 0; } 100% { rotation: 0 360 0; } } @material yellow { diffuse-color: #fdd276; backface-culling: false; side-orientation: frontside; } @material red { diffuse-color: #ad3525; backface-culling: false; side-orientation: frontside; } #model { animation: rotate-self 12s linear; } #face { material: "yellow"; position: 39 0 150; } #body { material: "red"; position: 39 -10 160; rotation: 0 0 0.3; } </style> <script src="./main.ts"></script> </head> <space> <mesh id="model" ref="model" selector="__root__" /> <bound id="main"> <cylinder id="body" height="140" diameter-top="30" diameter-bottom="80" tessellation="4" /> <cube id="face" width="80" height="80" depth="80" /> </bound> </space> </xsml>

Web-like
but for Spatial Mini-Apps

It restores the initial web development experience, with a what-you-see-is-what-you-get approach
It introduces XSML, it's a HTML-like markup language to describe 3D structure.
It introduces SCSS, it's a CSS-like language to describe the style of 3D space.
Similarly, JSAR uses TypeScript / JavaScript as the scripting language.

TypeScript Built-in

JSAR runtime can directly parse TypeScript code when executing mini-apps, so developers can run TypeScript code without any compilation or configuration.
TypeScript
  • Use TypeScript with one-step simple configuration
  • enjoy TypeScript's intelligent suggestions in Visual Studio Code
  • Publish applications using TypeScript source code without the need for additional builds
Babylon.js
Babylon.js is an open-source 3D rendering engine that supports multiple backends (WebGL, WebGPU, server-side, and native). It provides a range of game scene APIs for developing 3D games and applications.
JSAR has implemented some of the interfaces of the Babylon.js Engine, allowing developers to directly use Babylon.js APIs for development (although there may be some partial support).
Babylon.js

Built with Unity

The spatial mini-apps developed using JSAR can run in any Unity scene. We provide the JSAR UPM (Unity Package Manager) plugin, which allows you to implement the underlying data interfaces as needed, enabling you to use JSAR spatial mini-applications in your Unity application.