JSAR (/dʒ:-sar/) is a Web runtime that can be embedded into spatial environments. It empowers Web developers to use Web technologies to create spatial mini-applications that can run independently within a defined spatial context.

- Embeddable: This refers to defining a specific spatial child-space inside an existing space to run a Web application: 2D, 3D, or a combination of both.
- Web Runtime: It signifies that JSAR can start from a HTML URL.
- Rendering applications in one space and to be interacted with.
- Supports TypeScript natively, no need for compilation and configuration.
- Supports Web APIs to make libraries like Three.js and Babylon.js work.
- Introduce a new way to use Web application in the Era of Metaverse.
- Designed for Web developers, no need to learn new languages or frameworks.
- Ability to render existing Web applications spatially without any modification.
By examining various use cases, we aim to help you quickly determine if JSAR is suitable for your needs.
If you are a YodaOS-Master developer, consider using JSAR if any of the following apply to you:
- You want to create desktop widgets like pets, globes, or stock information.
- You want to develop scenes that combine 2D and 3D elements, such as map assistants or product displays.
- You have experience in web development.
However, you should not choose JSAR if your goals are:
- Developing standalone spatial applications.
- Creating a large-scale game.
- Providing a closed-off user experience.
To facilitate developers' use of this documentation, we provide a brief explanation of its structure so that you can quickly find the content you need.
This documentation intentionally includes some redundant content. You may encounter repeated information. This approach is primarily aimed at helping developers understand specific concepts without the need to repeatedly switch between different sections. It may result in slightly verbose writing, and we hope developers can appreciate its usefulness.
- Quick Start: This chapter introduces how to get started from a beginner's perspective. It covers topics such as initializing projects, implementing a simple application, debugging, and packaging. If you're a beginner, we recommend starting with this chapter.
- Basic Concepts: In this chapter, we delve into core concepts related to spatial mini-applications, embeddable spaces, input sources and HTML.
- Features: This chapter provides detailed articles on features of JSAR, such as TypeScript, Three.js, Babylon.js supports and more.
- References: This chapter provides a list of references, the technical documentations and specifications to help developers learn more about advanced features.
- Tutorials: This chapter provides step-by-step tutorials to help developers quickly get started with JSAR. If you're new to JSAR, we recommend starting with this chapter.
- Tools: This chapter provides instructions for JSAR developer tools. If you want to understand how to use developer tools, you can read this chapter.
- Contributing: This chapter provides guidelines for those who want to contribute to the JSAR project. If you want to contribute to the project, you can read this chapter.