Zea Engine was designed with the highest requirements in mind, giving developers a suite of tools to address the toughest challenges in modern professional graphics app development.
- Render scenes of 40,000 objects at 46 FPS
- A rendering path optimized for efficient GPU utilization
- A scene tree to represent large, complex 3d scenes
Zea Engine was built for the web, using modern web languages that enable new categories of high-performance and versatile web applications.
- Designed for 3D CAD and monstrous 3D assemblies
- Supports a wide range of rendering requirements, complex motion, and user interaction models
- Leverages event triggers found in the browser while adding a layer of tools for building 3D user interface widgets and interaction
Zea Engine is an open-source engine SDK that uses a modular architecture that enables developers to integrate new functionalities. Zea keeps the essential features in the core while allowing powerful extensions to be built, either by Zea, to expand the engine's scope, or by third parties.
- All aspects of the toolkit support extension through plugins that can implement custom behaviors and features
- The scene tree supports custom tree nodes which can contain any type of data, expose custom functions, and provide interaction tools
- The operator system computes changes in the scene tree enabling custom procedural motion or effects
- The renderer supports plugins that can take responsibility for displaying custom nodes in the tree, making it possible to integrate any custom rendering effects, while integrating with existing rendering solutions, and supporting features such as VR or AR
ZEA Engine Plugins
Zea Engine provides core functionality and an ecosystem of plugins that extend the engine's functionally for more specific use cases.
Zea Engine supports all major browsers and modern mobile devices. Some mobile devices are not as capable as others, so not every feature will work on every device. iOS for example does not yet support WebGL2, so some fancy rendering effects, such as High Dynamic Range images and Physically Based Rendering won’t work on iOS, or even Safari on desktop OsX systems. We are expecting this to change before the end of 2020, as Apple is actively working on support for WebGL2 in Safari.
The power of the GPU has a huge impact on rendering performance, so on a mobile device like a phone or tablet can handle a few million triangles at a time, a desktop GPU can handle many millions of triangles.
Zea Engine provides very basic lighting and HDR Image, Physically Based Rendering(PBR). PBR is used to make surfaces look realistic and pretty. The Brake System demos shows PBR materials. Lights that cast shadows are not part of the engine today, but may be available in the future.
Yes, transparency is supported. Geometries are sorted during rendering to ensure accurate results. Shaders for transparent geoms can be rendered using multiple passes to support color tinting and specular reflections.
Yes, realistic Physically based rendering is supported, and material parameters are texturable. BaseColor, Roughness, and also normal maps can be used to perturb the surface normals.
Ambient Occlusion is on the roadmap. Support is currently blocked waiting for Safari to support WebGL2, which is currently under active development at Apple.
There is no single camera manipulation mode that fits all types of applications. The builtin Camera Manipulator supports turntable, tumbler, or trackball base manipulation. For live examples of these various manipulation modes, please consult the Zea Engine documentation.
It is also possible to to completely replace the builtin Camera manipulator with a custom one that can have your own set of hotkeys and behavior programmed. Custom manipulators could listen to gamepad devices such as XBox controllers and move the camera accordingly.
Yes, cutting planes can be setup using Groups. This allows only parts of the mesh, for example, a casing, to be cut away exposing internal parts. For some examples of cutting planes, please checkout the Gearbox of Master Cylinder demos in the Showcase section.
Yes, WebAssembly is being used in various parts of the engine, and we are actively working on leveraging web assembly more to make it even faster.
Zea Engine is currently implemented as a ‘forward’ renderer, which has its pros and cons. One of the pros is hardware MSAA anti-aliasing which is the highest quality form of anti-aliasing. Once iOS supported WebGL 2, Zea Engine will likely be migrated to a deferred renderer to take advantage of the advanced lighting techniques. Anti-aliasing will then be implemented as a post process.
Developers can use any web app frameworks they chose to build user interfaces, including React, Vue, or Angular. We tend to use some of the newer frameworks like Stencil and Svelte, or no framework at all and just Vanilla HTML and JS. The source code is available for all of our samples to see how they were built.
For UI, we provide a web components library that makes building apps quick and easy. The UI library is built using Stencil, and is open source, so you can customize it to fit your needs. To see the live components library, please see our documentation here:
Most of the Zea Engine samples are served using a simple static server. You can download them to your computer and run them using even the most basic server. We use a variety of tools to serve our samples, including Github Pages, and Glitch.