Select Page

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

A vast number of properties to fully control your terrain look.

You can easily generate mountains, lakes and islands. Control the terrain size and complexity.

Easily find the right settings by playing on real-time with each parameter.

 

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

The terrain can be easily textured by using as many texture channels as supported by your GPU.

Each texture channel can be mapped on the terrain surface based on height and slope.

Support for diffuse & diffuse with tint, normal and optional noise textures is provided.

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

Using regular Mesh Colliders for terrains is slow and can easily get your project to run out of memory.

We are generating instead heightfields in the Web Worker allowing us to generate a collision shape, even for large terrains, in a couple of milliseconds.

 

Pathfinder

An advanced 3D pathfinder and crowd navigation system.

Runtime Navmesh Generation

Easily create navigation zones of your levels on runtime using a WASM build of Recast.

Control which objects are included in the navmesh generation with full control of the process through a multitude of properties.

Agent and Crowd Navigation

Create one or more agents and group them in crowds. Agents can navigate solo or in groups, avoid stationary or dynamic obstacles, and of course each other!

Easily issue navigation actions for one or more agents at the same time.

Top Down Player Controller

The powerful player controller included in Solar Tools has been updated to seamlessly work with the Pathfinder.

Easily create your own top down player controller. Animations and networking work out of the box. Regular keyboard/mouse/gamepad input too!

Material Effects

A number of advanced shader effects are provided to improve your rendering quality.

Advanced Water Effect

A water effect that features dynamic reflections and refraction, depth based water color and shore foam and transparency effects.

All water features can be easily toggled on/off to achieve optimal performance on each device.

 

Planar Reflections & Refraction

An easy to use script to enable real time planar reflections and/or refraction on any material surface.

Control the render target resolution and update frequency to increase performance.

Multiple reflective and refractive surfaces are supported.

 

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

Updates the PlayCanvas exponential squared fog to sample the cubemap color automatically, so the fog is colored to match the horizon color.

It includes support for height based fog to better give volume to distant object. The fog can also be animated using a noise pattern to add movement.

Environmental Snow

Easily add a procedural snow effect to any material in your scene.

Control its scale, color and threshold using a noise texture map for natural transitions.

Exclude specific materials from the effect and any surface below the water threshold (it doesn’t snow underwater!).

 

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

A powerful extended material that allows you to blend multiple textures on the same model based either on painted vertex colors or provided texture masks.

In the hands of an artist it can be used for easily improving the look of models e.g. sand on old floor or moss on a rock.

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

Overrides the internal PlayCanvas shadow renderer to customize how often each shadow cascade updates.

Easily increase performance and reduce draw calls by reducing the update cycle of distant shadows.

Brightness and Contrast
Easily change the brightness and contrast of the scene without using an expensive post effect. The effect is applied as a global shader chunk affecting all scene materials.

 

Render Surface Map

A powerful top down renderer that can render a texture using a number of render presets (Full lighting, Diffuse, Normals, Depth).

It can be used for Game elements like a rendering a Mini map or you can inject it on your shaders to produce elaborate effects.

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.

 

Paint, Erase, Save Buttons

Easy to use interface exposed directly on each painter script instance.

You can switch between painting and erasing mode, preview your brush stokes and save them to the data file when you are ready.

 

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.

Real Time Text Chat

A simple to use text chat system that automatically connects to your multiplayer server and provides app wide chat.

Users can type text messages with emoji support and they are automatically broadcasted to any other connected player.

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

A mobile friendly fully customizable emoji picker that can render 2D emojis in the 3D world.

Emojis automatically animate above the player’s avatar and are also networked to all connected players.

Have your players quickly share emoji interactions!

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!

Graphics Settings UI

An extensible settings script that can be used to select graphics quality presets and also control basic game settings like sound level, time of day and active player controller.

PlayCanvas

PlayCanvas

THE WEB-FIRST GAME ENGINE

Collaboratively build stunning HTML5 games and visualizations

Featured Case

Aritelia

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.

In search of tailor-made tools to elevate your projects? Look no further!