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!
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.
There are many different types of objects that can be created:
Sources - These are Library elements
Web based (e.g. TwitchAlerts)
Layers - These are elements on the Scene Layout
Image Filters (HLSL pixel shaders)
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:
Custom preset initialization
In this following sections, we’ll create some examples to better understand how things work.