Enhance your workflow
Extend your web-based content creation with powerful tools to super charge your development process.
Solar Tools SDK
Elevate your PlayCanvas development with the Solar Tools – a powerful, feature-rich toolkit for ultimate creativity!

GPU Instancer
A plug and play hardware instancing solution that can easily reduce the draw calls in any PlayCanvas project to the minimum required.
GPU Instancing
Tired of watching your frame rate drop after adding too many models to your game?
GPU instancing automatically groups all models by their mesh and material to reduce the number of draw calls rendered to the minimum.
No need to setup batch groups and assign them manually, all models will be automatically instanced on runtime.
Supports both Model and Render components with all of their properties for dynamic lighting (static lightmaps are not supported).
Changing any component property on runtime will update the instancing groups automatically, no need to regenerate batch groups!
Level of Details
Your models can now include easy to use level of details by simple tagging the entity name with a suffix “_LOD2”.
It’s that simple! The instancing script will automatically toggle on/off the corresponding level of detail against the active camera.
You can set both global LOD distance levels, and optional local, per model, levels.
Cell based Frustum Culling
Open world games usually demand large numbers of models drawn e.g. for rocks, grass, trees etc.
Using the PlayCanvas per entity frustum culling solution can lead to massive performance drop for large number of entities.
Instancer can partition your entities in a grid, that you can size, and do frustum culling on each cell instead.
Works great with the Painter to quickly spawn massive amounts of models without hindering performance.
Custom Update Frequency
You can set a custom update frequency per cell to reduce the overhead of updating them per frame.
This provides a significant performance boost when using large numbers of instances.
Control Rendering Per Layer
You can easily specify what each instance renders per layer giving you fine control of your rendering pipeline.
For example increase performance by rendering a lower quality model, or even a billboard for water reflections or the shadow pass.
Are you rendering a mini map? Use a different material color for your real time map generation.
Seamless Operation
Instancer requires minimum setup and can seamlessly integrate to your PlayCanvas project.
It will identify any model or render component that doesn’t support instancing e.g. skinned models or UI elements and skip them.
At the same time it can work in parallel with PlayCanvas CPU batching so you can get the best of both worlds, if you require it so.
You can easily exclude any entity by using a special tag and also control with layers should be excluded completely.
Together with Editor Scripting, works in the editor, too!
Physics component system
When the instancer is consuming data directly from either the editor painter or a terrain distributor, it can directly create physics bodies without the need to create entities.
That way you can add thousands of static bodies to your game with great performance.
Hardware Occlusion Culling
Leveraging WebGL 2.0 hardware queries, a plug-and-play system is provided to easily set up your occluders and occludees for runtime occlusion culling to improve performance.
A powerful system that can work with multiple occluders (batching is supported to minimize draw calls) and occludees manages the visibility state of one or more objects.
Custom events can be fired on each occludee for use in gameplay-specific logic.
Zone Culling
Easily add zones inside the PlayCanvas editor using regular box collision shapes.
The GPU Instancer will automatic toggle any referenced objects on/off based on the position of the active camera, to increase performance by controlling when areas of your world render.

Terrains
A fast and extensible solution to get beautiful terrains rendered both in the PlayCanvas editor and on runtime.
Fully Parameterized World
Seeded Generation
Terrain generation can be fully random or you can control the seed.
That way you can generated seeded random terrains and provide limitless variations for your players.
By using the same seed you can generate the exact same random terrain on any client.
Works in a Web Worker
All terrain generation happens in a web worker so the main thread isn’t being blocked at all.
The worker will transfer only the required values to generated the terrain mesh using transferrable objects. That avoids big stalls and large memory allocation when generating terrains.
You can easily generate multiple terrains on the background even on low end mobile devices.
Level of Details
You can easily generate any number of LODs required by your application.
The Terrain Generator uses a special library to reduce the number of triangles rendered (RTIN terrain mesh generation).
All LOD variations will be generated in the web worker. They work seamlessly with the GPU Instancer on runtime.
Heightmap Support
You can feed the terrain generator a grayscale heightmap, instead of using procedural generation.
All terrain features works seamlessly with heightmap based terrains.
Dynamic Texturing
Advanced Noise Patterns
Three unique noise textures can be used to control various aspects of the terrains presentation, making it look natural and unique.
A noise variation texture can help break the visual pattern that seamless textures generate.
A border noise texture gives you fine control on how texture channels blend with each other.
A diffuse noise texture can provide additional detail on the final channel pixel color.
Procedural Object Distributor
A powerful object distributor that can procedurally spawn entities and objects on the terrain is provided.
Using a fast BVH raycasting solution it can accurately spawn huge number of objects on your terrain.
You can control their position by using the terrain color, height range, slope angle and even an optional valid surface (objects can spawn on top of other objects).
Using the GPU Instancer you can spawn huge numbers of models to cover your terrain like grass and rocks.
Works in the web worker, too!
Heightfield Collider

Pathfinder
An advanced 3D pathfinder and crowd navigation system.
Runtime Navmesh Generation
Agent and Crowd Navigation

Material Effects
A number of advanced shader effects are provided to improve your rendering quality.
Advanced Water Effect
Planar Reflections & Refraction
Day and Night Skybox
A dynamic skybox that features a 24 hours cycle with a sun, moon and stars and procedural 2D clouds.
You have full control over all atmospheric scattering values to achieve the right sky for your game.
The skybox renders a cubemap that can be used for IBL (image based lighting) and provide realistic lighting to your scene.
The current time can be easily set via a property or smoothly animated.
Environmental Fog
Environmental Snow
Vegetation Wind
An easy to use script that can add one or more wind channels to any material in your scene.
It can use UV (UV0 or UV1) or World based coordinates to create an animation curve for the effect.
You can add random wind gusts and control the frequency and amplitude of the effect.
An optional object interaction toggle is available that can bend the polygons on the Y direction against a list of referenced objects. Works great to simulate how vegetation is affected when players pass by.
Surface Blend Color
Add a surface color tint to any material. The surface color is being rendered to a texture so it can include any layers of your choice e.g. terrain, rocks etc.
Works great for grass and low vegetation to make it visually integrated to the terrain. But also for any other model that sits on a terrain like surface.
Supports adding any number of optional animated noise channels that can simulate effects like clouds shadows.
A surface blending option is provided that can blend only part of the model’s surface with the underlying terrain surface. Blending both color and normal is provided to make models smoothly blend with any surface.
Vegetation Player Interaction
A vertex shader based effect to make selected materials bend when an entity walks close by.
It’s super easy to enable and have control of which entities should interact with it.
Multi-Material Blend
Alpha Distance Fade
Smoothly fade out any material after a certain distance from the active camera.
Works great for vegetation to smoothly fade out the grid cells of the last LOD.
Shadows Timer
Brightness and Contrast

Editor Scripting
A battle tested solution to enable editor scripting for any PlayCanvas script.
Simple to use in Editor
Enable editor scripting for any existing or new PlayCanvas script by adding a single attribute.
The Editor browser extension will parse each editor enabled script when the editor loads and execute them.
Write your own tools for the PlayCanvas editor or simple view the result of your runtime scripts in editor.
Editor Script Methods
Optional script methods can be used in any editor enabled script to add editor only functionality:
– editorInitialize
– editorAttrChange
– editorScriptPanelRender
Editor Facing Custom UI
You can easily add buttons or any other custom HTML to any script instance.
The Editor Painter script uses the same functionality for its Paint, Erase and Save buttons.
Update and Physics
The Editor browser extension enables automatic update of the pc.Application render loop allowing all of your editor enabled scripts to update like they do on runtime.
At the same time it enables execution of Ammo.js in the editor to easily add raycasting support and any other physics related simulation in editor.

Editor Painter (preview)
A powerful editor extension to easily paint large numbers of entities in your PlayCanvas projects.
Click and Drag Brush
Click and drag on any surface (including on Terrains) to paint one or more entities in place.
The script will automatically raycast to find a valid point on top of a rigid body surface. The entity will be placed with accuracy and if required aligned to the surface normal.
Easily control the number of entities to spawn, the distance between each brush stroke and if required add randomization for rotation and scale.
Multiple Templates
Easily add variation to your brush strokes by including any number of template entities.
The brush will randomly select a template from that list on each stroke to spawn an entity from.
Instancing Data
If you are painting large number of objects like grass, the painter script can spawn them directly in a .JSON data file to be loaded on runtime.
This way you can paint thousands of objects with a few brush strokes while the PlayCanvas editor continuous to perform smoothly.

Realtime Multiplayer
A plug and player networking solution to easily get started with live networking in your PlayCanvas projects.
Plug and Play
Easily drag and drop the Multiplayer scripts in your scene and get networking on any Player Controller.
You can setup a simple Colyseus server using our ready to deploy template and enjoy all the merits of networking.
Multiple rooms
Spawn any number of server rooms to organize your players.
If required any client can connect to more than one rooms.
There are no hard limits at the maximum number of connected clients. Scale your server as little or as much you like!
Authoritative multiplayer
If required by your game to add anti-cheat mechanisms and server side prediction, you can easily do so by adding your own code in the server.
You can add your own custom JavaScript in the server template script or write your own server from scratch.
Video streaming
Stream video to any 3D surface and to all connected players. Multiple sources supported:
– Web camera
– Screen share
– External cloud provider
3D Spatial Audio
Add positional voice chat to enable your players to locate each other using positional and directional 3D audio.
Using the powerful Agora SDK and streaming services to get crystal clear performant voice chat between multiple players.

Player Controllers
An ever growing library of drag and drop, physics enabled, player controllers.
Third Person Controller
A powerful third person controller that can walk, run, jump and swim with keyboard, mouse and touch input.
The controller includes animations compatible with Mixamo and Ready Player Me skeletons and can be easily extended to support any other.
Ready Player Me
asily add Ready Player Me avatars to your PlayCanvas scenes.
The avatars are fully working with the Player Controllers. Animation, networking, input controls work out of the box.
Find out more about Ready Player Me here.
Interactive Emojis
Virtual Touch Joystick
An easy to use virtual joystick that can be used for visualizing touch input.
Virtual Reality (VR)
The controller works out of the box in Virtual Reality when a VR headset is connected.
Looking around using your head and also moving using the VR joystick is fully supported.
The controller works seamlessly when entering and leaving VR mode.
Animation LOD
Fill your digital worlds with multiple animated models!
PlayCanvas CPU based skinning comes with a performance hit. Our Animation LOD system enables a massive performance increase to continue using regular animated characters with no changes.
Automatically reduce the playback frame rate based on distance level of details.
Frustum culling support for disabling playback on non visible models.
Animation Curve Paths
Easily create animation paths in editor with full control over the generated curve. Preview the animation in editor and make changes on the fly. Animate any entity, even cameras and players.
Define triggers and as soon as any player steps in, it will be automatically animated on the path.
Use it to create automatic transitions between your levels, works with multiplayer scenes too!

More tools coming soon!
We have many tools and extensions in development or planned that will soon be part of this collection.
If you’d like to see a tool included, feel free to contact us on how we can add it to our roadmap.

PlayCanvas
THE WEB-FIRST GAME ENGINE
Collaboratively build stunning HTML5 games and visualizations
Featured Case

Aritelia
HTML5 Social MMO
Aritelia is a procedurally generated persistent online world where you can explore, build and play with your friends.

Aritelia is a unique web based experience featuring an enormous open world. A vast archipelago of million of unique islands which you can visit with your friends.
It uses our Solar Tools and serves as a test bed for pushing our technology ahead. Aritelia is in active development by our studio.
Pricing
A wide range of services to support your business.
Indie License
up to 200K annual revenue- Solar Tools SDK
- Access to the full SDK examples project
- Large collection of starter kits
- Scripts can’t be extended or modified
- No Source Code access
- Community Discord Support channel
- Revenue Limited
- Powered by Solar Tools link required.
Enterprise License
no revenue limit- Solar Tools SDK
- Access to the full SDK examples project
- Large collection of starter kits
- Scripts can be extended and modified
- Source Code access
- Private Company Support channel
- No Revenue Limit
- White labeled
- Live Sessions for direct engineering support
- Solution Consultation
- Priority Bug fixing
Development Services
for indie or enterprise licenses- Our studio at your disposal
- Custom development from your concepts to release
- Performance optimization on existing projects
- R&D on your project ideas
- Custom tools development
License Details
1. Both Indie and Enterprise licenses are issued on a per-seat basis. One seat is required for each developer who has access to any project that incorporates the Solar Tools SDK.
2. A valid personal or organization playcanvas.com account is required to receive the SDK.
3. The SDK includes comprehensive demos, examples, and starter kits, as well as ready-to-use templates. Descriptive explanations are provided for all script attributes.
4. The SDK comes with a perpetual license, allowing its use in multiple projects without requiring server connectivity during development or publishing phases.
5. Indie licenses are required to include in all published builds that use the Solar Tools SDK a “Powered by Solar Tools” label that links to this page (https://solargames.io/tools). The link can be in a non prominent location such as loading screen, about or credits page.
6. Subscription cancellation is allowed at any time, and you can retain the latest SDK version obtained. To continue receiving SDK updates and support, subscription renewal is mandatory. Existing subscribers can manage their subscriptions here.
7. All purchases are non-refundable. The License Agreement for the Solar Tools can be reviewed here.