. Coherent Labs

Prysm All Features.

Workflow

Use the tools you know and love

There are no tools more loved by artists than Adobe’s CC - and we want you to keep using them. Design and draw in Photoshop, create effects in After Effects, add motion in Animate.

Add motion

Use Adobe Animate’s wide range of capabilities - animate colors, positions, sizes, masks, even the shapes themselves! Love Persona5’s UI? All of it is doable with Coherent Prysm and Adobe Animate.

Add interactions

Through Prysm’s plugin for Adobe Animate, add interactivity to your screens without code.

  • Declaratively specify how the game’s data affects the UI.
  • Use the variety of events (player input, events from the game, UI changes on other elements, etc.) and actions to setup interactions like adding new UI widgets, switching between screens or sending data to the game.

See your changes instantly

There’s no loading, baking or other preprocessing time - hit play and see how your UI looks immediately.

Visual quality

Variety of effects

No visual effect is out of reach - apply filters and blend modes, 3D and 2D transform UI elements, use transparent videos for particle effects.


Credits for the above video go to CyberWebFX

Scalable UI

You don't need to guess what resolutions your players will be running on. Your UI will look as intended everywhere thanks to:

  • crisp font rendering at all resolutions
  • support for vector graphics (SVGs)
  • dynamically scaling elements based on the current viewport size

All the image support you would ever need

Want to use some platform-specific texture format (DDS, KTC, ASTC) or an image straight out of Photoshop (PSD)? You can do that.

Want to load your UI textures by yourself? You can do that.

Want to display your in-world camera capture in the UI (e.g. for a 3D player avatar)? You can do that.

Integration

Deep Unreal Engine and Unity integrations

If you are using the amazing Unreal Engine or Unity, installation steps are as easy as 1-2-3. Our plugins for both engines will make you feel like our tech is a native part of the engine.

  • Custom components can be attached to any game object in your scene
  • Full scripting support for Blueprints / C#
  • A submenu in the editor gives you easy access to all of our features
  • Support for old and new versions of the both engines alike

Amazing performance

We are the fastest UI technology you can find anywhere and we have the data and testimonials to back it up. For example, the UI in the previous bullet runs in under 1 ms on a standard PS4 (not PS4 Pro!).

White box

We are aware our tech doesn’t run in isolation from your game. For best performance, we give you control over all subsystems we can.

  • You control how the SDK allocates memory, loads resources, creates log files or reads input
  • Use out-of-the-box renderers for DirectX11, DirectX12, OpenGL, GLES2, GLES3, Metal, console-specific APIs or write your own
  • Run our parallel code on how many and whichever threads you like - the SDK never spawns threads on its own


void OnWorkAvailable(void*, cohtml::WorkType WorkType, cohtml::TaskFamilyId TaskFamily)
{
	MyEngine::EnqueueWorkOnSomeThread([WorkType, TaskFamily]()
	{
		cohtml::Library::HintThreadUsage(WorkType);
		CohtmlLibrary->ExecuteWork(WorkType, cohtml::WEM_UntilQueueEmpty, TaskFamily);
	});
}

Clean API

We write code so you don't have to and you only need an hour to understand how to use our API.

  • Setup is as easy 1-2-3
  • Configure every setting you are interested in
  • Preserving backwards compatibility is a major goal - we rarely break it and when we do it's thoroughly described
  • The modular architecture allows you to turn off and on features depending on your needs. Feel free to switch off entire subsystems like video and HTTP support if you aren't going to use them.


// your game loop
while (true)
{
	// Update UI
	uiSystem->Advance(MyEngine::CurrentTime);
	auto frameId = uiScreen->Advance(MyEngine::CurrentTime);
	uiScreenRenderer->Paint(frameId);
	DrawUITextureOnScreen();

	// Update engine simulation
}