/BabylonNative

Build cross-platform native applications with the power of the Babylon.js JavaScript framework

Primary LanguageC++MIT LicenseMIT

Build Status Nightly build

Babylon Native

Welcome! Babylon Native is a collection of technologies intended to bring the power and flexibility of Babylon.js to cross-platform applications beyond the browser. The goal of this project is to allow the same JavaScript that powers Babylon.js apps on the Web to work identically in native apps on Windows, macOS, iOS, Android, and Linux.

Check out the home page for a project overview.

Quick Links

Project Status

Babylon Native is currently available as a public preview in source form only. While many features are supported and functional, there are still features that are under active development. Please note that this project is not at the point where updates are fully backward compatible yet, and thus the contract for consuming Babylon Native can still and probably will change in the future.

What is Supported from Babylon.js

Babylon.js has many, many features; and while the goal of Babylon Native is to support an overwhelming majority of those features, not all parts of Babylon.js are equally well supported by Babylon Native at this time. This section is intended to help readers "eyeball it," checking quickly whether a given type of feature is likely supported by Babylon Native at this time. For more precise information about current and upcoming support for particular features, please don't hesitate to ask us on the forum.

Supported

Many core features from Babylon.js are supported. Here is a non-exhaustive list.

  • 3D Assets (glTF, OBJ, etc.)
  • Animations
  • Behaviors
  • Cameras
  • Gizmos
  • Materials
  • Meshes
  • Lights
  • Physics
  • Scenes
  • Shaders
  • Sprites
  • Textures loaded from a PNG or JPEG
  • XR

Partially Supported

The following are features that are not completely finished yet or have gaps.

  • Environment (only .env supported)
  • GUI (text rendering experimentally supported)
  • Input (only single pointer supported)
  • Instancing (only thin instances supported)
  • Post Processing (some are supported)
  • Media Devices (e.g., Webcams) (experimental)

Not Yet Supported

The following are features that don't work right now but will work in the future.

  • Audio
  • Serializers
  • Particles
  • Texture Loaders (KTX, DDS, etc.)

No Plan to Support

The following are features that depend on features (e.g. HTML) that are outside the scope of what this project will support.

  • Inspector
  • Node Material Editor
  • GUI Editor
  • Performance Profiler
  • 2D Controls

Team Stories

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests.

Reporting Security Issues

Security issues and bugs should be reported privately, via email, to the Microsoft Security Response Center (MSRC) at secure@microsoft.com. You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Further information, including the MSRC PGP key, can be found in the Security TechCenter.