Getting Started
This section provides an introduction to the bg2 engine and helps you choose the appropriate API for your use case. The engine offers two distinct APIs targeting different platforms and execution environments: a TypeScript API for web applications and a C++ API for native applications.
Both APIs share the same core concepts, including scene structure, component-based design, and asset formats, allowing consistent workflows across platforms.
Choosing the Right API
Section titled “Choosing the Right API”Selecting the appropriate API depends primarily on your target platform, performance requirements, and application type.
TypeScript API (Web)
Section titled “TypeScript API (Web)”Choose the TypeScript API if your application runs in a browser environment.
Getting Started with TypeScript API
This API is designed for:
- Web-based 3D applications
- Product configurators and visualization tools
- Educational or interactive content delivered through the web
- Integration with frontend frameworks such as React
Key characteristics:
- Runs on top of WebGL
- Imperative, object-oriented programming model
- Tight integration with the DOM and browser lifecycle
- Easy deployment and distribution via standard web technologies
TypeScript is the recommended language for this API. While JavaScript is supported, it is considered transitional and will be deprecated in future versions.
C++ API (Native)
Section titled “C++ API (Native)”Choose the C++ API if you are building a native application or require maximum performance and control over the rendering pipeline.
This API is designed for:
- High-performance rendering applications
- Simulation systems
- Content authoring tools
- Backend or offline rendering processes
Key characteristics:
- Built on top of Vulkan
- Explicit control over GPU resources and rendering behavior
- Advanced rendering techniques (PBR, IBL, MSAA, deferred rendering)
- Suitable for production-grade tools and systems
Creation Tools bg2 engine provides a set of tools for asset creation and scene authoring. These tools are designed to support the content pipeline used by both the TypeScript and C++ APIs.
At the moment, creation tools are available only as source code. They are distributed as part of the C++ API repository and must be built directly from source.
To use these tools:
Clone the C++ API repository
Build the project using the native toolchain for your platform
Run the corresponding tools from the compiled binaries
These tools are primarily intended for:
Generating and processing 3D assets
Authoring scenes and materials
Preparing data for deployment in both native and web environments
For detailed instructions on how to obtain, build, and use these tools, refer to the C++ API Getting Started guide.
Creation Tools
Section titled “Creation Tools”bg2 engine provides a set of tools for asset creation and scene authoring. These tools are designed to support the content pipeline used by both the TypeScript and C++ APIs.
At the moment, creation tools are available only as source code. They are distributed as part of the C++ API repository and must be built directly from source.
To use these tools:
-
Clone the C++ API repository
-
Build the project using the native toolchain for your platform
-
Run the corresponding tools from the compiled binaries
These tools are primarily intended for:
- Generating and processing 3D assets
- Authoring scenes and materials
- Preparing data for deployment in both native and web environments
For detailed instructions on how to obtain, build, and use these tools, refer to the C++ API Getting Started guide.
Shared Concepts
Section titled “Shared Concepts”Regardless of the selected API, both environments follow the same architectural principles:
- Scene graph with hierarchical nodes
- Component-based design for behavior and rendering
- Consistent asset formats across platforms
- Similar rendering concepts and workflows
This allows developers to move between both APIs with minimal friction and reuse assets without transformation.
Next Steps
Section titled “Next Steps”After choosing the appropriate API, continue with the corresponding “Getting Started” guide for detailed setup and first application examples:
- TypeScript API Getting Started
- C++ API Getting Started