SDK
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.