Easy: Hello World¶
The simplest ScrollKit app — scroll some text across the simulated LED matrix. No network, no data sources.

Full source: demos/easy/hello_world.py
import asyncio
from scrollkit.app.base import ScrollKitApp
from scrollkit.display.content import ScrollingText, StaticText
class HelloWorldApp(ScrollKitApp):
def __init__(self):
super().__init__(enable_web=False, update_interval=10)
async def create_display(self):
from scrollkit.display.simulator import SimulatorDisplay
display = SimulatorDisplay(width=64, height=32)
await display.create_window("ScrollKit - Hello World")
return display
async def setup(self):
# Content added here is cycled by the display loop.
self.content_queue.add(StaticText("Hi!", x=20, y=12, color=0x00FF88, duration=2))
self.content_queue.add(ScrollingText("Hello, World! Welcome to ScrollKit.",
y=12, color=0x00AAFF))
if __name__ == "__main__":
asyncio.run(HelloWorldApp().run())
Run it:
PYTHONPATH=src python demos/easy/hello_world.py
What's happening¶
ScrollKitAppruns an async loop. Its display process repeatedly asks for content and renders it at ~20 FPS.setup()runs once at startup. We push two pieces of content intoself.content_queue: a static "Hi!" for 2 seconds, then a scrolling greeting.StaticText/ScrollingTextareDisplayContenttypes.StaticTextwith adurationexpires after that many seconds;ScrollingTextscrolls until it leaves the screen.create_display()opens the simulator window. Omit this override andUnifiedDisplayauto-selects hardware vs simulator for you.
Next: Medium — live data.