Please note: The SDK is currently incomplete so we’ll be adding additional articles in the coming weeks.

In this article, we’ll outline the design of the app and how you can extend it with new functionality. If you make something cool, we’d love to see it and maybe include it in future builds!

Platform Overview

PolypopLive was designed to be highly customizable and extensible. In fact, most of its high-level features are built in Lua and you can find the live source code within the installed folder under “PolyPop/UIX”. This top-level Lua layer calls low-level engine native functions. The engine is referred to as Antimatter and you’ll see this referenced as such in the engine docs.

Lua is very similar to Javascript, so if you’re familiar with Javascript, then you are most of the way there.

There are many different types of objects that can be created:

  • Sources - These are Library elements

    • Alerts

      • Generative

      • Web based (e.g. TwitchAlerts)

    • Images/videos

    • Audio clips

    • 3D models

  • Layers - These are elements on the Scene Layout

    • 2D Layers

    • Image Filters (HLSL pixel shaders)

    • 3D Layers

  • Toys - 3D Objects that live in 3D Layers

  • Outputs - Go Live buttons

  • Utilities - These are the button to the left of Go Live

  • Mods - Modifiers that can modify any other type of object

  • Wires - Items that connect an alert to an action of property

  • Action Steps - Action Sequence items

  • Hosts - Abstractions of facilities to access web services

Additionally, you can enhance presets with custom code as well to create:

  • Interactive Tutorials

  • Custom preset initialization

In this following sections, we’ll create some examples to better understand how things work.