Skip to content

About

Local app that renders church service visuals (countdown timers, spinner wheels) to ProPresenter-ready MP4s

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Service Visuals

A desktop app for church tech teams. Quickly generate simple visuals — a countdown timer, a decision spinner wheel, a QR "scan to…" card, a seamless motion background, and a scoreboard editor — and export them as 1080p MP4s or PNGs ready to drag into ProPresenter.

No accounts, no cloud, nothing else to install. Everything renders on your machine.

Install (no terminal needed)

Grab the latest build from the Releases page:

Mac (Apple Silicon — M1 or newer; Intel Macs aren't supported) — download ServiceVisuals-mac.zip, unzip, then drag Service Visuals into your Applications folder and open it from there (Launchpad or Spotlight). First open only, because the app isn't signed with an Apple Developer ID yet: double-click it, press Done on the "Apple could not verify…" message, then open System Settings → Privacy & Security, scroll down to the message about Service Visuals and click Open Anyway, and confirm with your Mac's password. (On macOS 14 and older, right-click the app → Open → Open also works.) No Terminal needed, and updates after that open normally.

Moving it to Applications isn't optional housekeeping. If you run it straight from Downloads, macOS launches a temporary read-only copy of it ("App Translocation") and the app cannot update itself — it will tell you so rather than pretending to update.

Windows — download ServiceVisuals-windows.zip, unzip, and put Service Visuals.exe wherever you like (e.g. your Desktop). To get it in the Start menu, right-click the exe → Pin to Start. First open only: if SmartScreen appears, click More info → Run anyway.

Launching the app opens the Service Visuals window — configure, export, done. Exported MP4s are saved to Documents → Service Visuals.

Updates install themselves. When a new version is released, an amber UPDATE pill appears in the header — click INSTALL and the app downloads the new version, swaps itself out, and restarts. No manual reinstalling. If a swap ever fails, the app says so on its next launch (and keeps a log at ~/.service-visuals/update.log) instead of quietly staying on the old version.

Anonymous usage counts. So we can see which tools actually get used, the app sends a tiny anonymous event when a visual is exported — just the event name (e.g. export, scoreboard), the app version and the operating system. If something goes wrong (an export fails, the app crashes or won't open) it also sends the shape of the error: the error type and where in the app's own code it happened, with any file paths, file names and quoted values removed first — the full details stay on your computer in ~/.service-visuals/crash.log. Nothing you type, upload, name or link is ever sent, there is no user or device ID, and it can't be traced back to a person or a church. It goes to Aptabase (open source, privacy-first). Turn it off any time with the ANONYMOUS USAGE COUNTS switch in the footer. Exports also record how long the render took, which visual it was (a style name, never a file name), and which video encoder did the work — whether your graphics card was used and, if it wasn't, a one-word reason such as a missing driver (never the error text itself, which can contain a file path). The full list of events lives in stats.py.

Using it

  1. Pick a tile — Timer, Spinner, QR card or Motion background — and configure it. The live preview shows what you'll get before you spend any render time.
    • Timer: duration, three styles (Classic / Ring / Bar), accent colour, warn colour in the final 10 seconds, keep 0:00 on screen — or switch its MODE to Clock for a live wall clock that ticks forward from a start time you choose, in Classic or Ring style, 12- or 24-hour format, with optional seconds and milliseconds. In Countdown mode, type the shape you want into FORMAT under Advanced — H hours, M minutes, S seconds, .000 milliseconds: M:SS.000 turns a 20-second timer into 0:20.000, HH:MM:SS gives 00:05:00, and the first unit stretches as needed (M:SS on 90 minutes reads 90:00). Leave it empty for the usual layout (a colon before the milliseconds works too, M:SS:000). Beat opener, also under Advanced, makes a conference-opener countdown: enter the song's BPM and key, and the video flashes white and black on the beat with a note in the song's key on every cut, so 0:00 lands on a beat and the band comes in in time and in tune (classic look, 60 fps, the only export with sound, up to 15 minutes). Choose MY SOUND to upload your band's own pad or hit (WAV, MP3 or M4A) — then drag the window on its waveform to pick the part that plays (up to two beats, so what you pick is exactly what plays) and press ▶ PLAY to hear it. It plays as recorded on every cut, and the app tells you which note it's in so you can match the song's key. It never leaves your computer, and it's cleared each time you open the app or the countdown, so an old sound never turns up by surprise. With milliseconds in the format there are three more Countdown-only options: Full-size milliseconds draws the .000 at the same size as the main digits (the whole timer is drawn a little smaller to still fit), Hold at zero until the end keeps the milliseconds on screen for the whole render reading .000 until the last N seconds (default 60), then ticks live — seamless, since the layout is computed once and never changes — and Smoother milliseconds (60 fps) exports a genuine constant 60 fps file (never 30 fps with doubled frames) for timers up to 15 minutes, roughly doubling render time and file size — only worth it if your video editor also exports at 60 fps. Drop in one or a few background images (kept for reuse next time) with adjustable dim and blur — with 2+ images the background cycles on a timer you set, a clean cut with no crossfade. Or flip GREEN SCREEN for a flat chroma-green frame you key out in your video software, keeping the digits/ring/bar to key back in over your own footage — or TRANSPARENT for a real alpha-channel export instead of keying: a smaller .mov for CapCut and other editors, or the larger ProRes 4444 .mov for documented ProPresenter compatibility.
    • Spinner: one entry per line (2–100), Random or Choose-winner mode, accent colour. Try Test Spin in the preview. Pasted a messy list — names all on one line, commas here and new lines there? Tidy my list sorts it into one entry per line, exactly as written (anything the AI adds that wasn't in your text is left out), with Undo to put it back. It sends the text to OpenRouter with your key, like Fill with AI. Fill with AI can top up the wheel — type what you need (e.g. "books of the Bible", "world capitals") and either give an exact number or tick Full list to let the AI return the complete set. Uses your own OpenRouter key, pasted once and stored only on your computer; the model is selectable. It defaults to openrouter/auto on its lowest cost tier, which picks a small, quick model for a fraction of a cent per fill. An account with no credit falls back to openrouter/free automatically, which is free but slower.
    • QR card: a "scan to…" code from any website or plain text, with an optional heading and caption inside one white card. Drag the card on the preview to place it and drag a corner to resize it; pick square, dot or rounded modules, and a dark, light or image background (with a Dim slider for your image). The preview shows the real, scannable code (hit Refresh to regenerate) — perfect for giving, connect cards and signups. Export it as a clip (EXPORT MP4) or, since nothing in it moves, as a still EXPORT PNG — instant, and usually the simpler thing to drop into ProPresenter.
    • Motion background: a seamlessly-looping ambient background in your accent colour — Aurora, Bokeh or Waves — for worship and ambient moments.
    • YouTube download: paste a YouTube link and get an MP4 (H.264, up to 1080p, ready for ProPresenter) or an MP3 — or tick BATCH and paste several links, one per line, to download them all (up to 50 at once, three at a time). The first download fetches and verifies the downloader tools (about 75 MB, one time); after that it keeps itself current automatically. Downloading a video is not a licence to show it — that call, and any rights/licensing needed for public use, is the church's responsibility.
    • Scoreboard: upload your existing points screen once. The app reads the numbers with your operating system's own text recognition and saves it as a reusable board. Each week: open it, click a number, type the new score, export. The PNG is identical to your original except for the digits you changed — the new digits are lifted from the image itself, so they match the original font exactly. Numbers it misses can be marked by hand with ADD A NUMBER. Works best on flat or lightly-textured backgrounds — on heavily textured artwork (busy AI-generated posters with gradients and multi-layer outlines) the digits are replaced correctly but faint traces of the old number can remain around them. If the recogniser misses a number (it happens more on Windows than on Mac), click ADD A NUMBER and drag a box around it — it becomes editable like the rest.
  2. Hit Export. The video renders locally.
  3. Hit Reveal in Finder (Mac) / Show in Explorer (Windows) — it selects the exported file so you can drag it straight into a ProPresenter media bin or playlist.

Output spec: 1920×1080, 30 fps, H.264 MP4 (yuv420p, faststart) — plays in ProPresenter out of the box.

Run from source (developers)

Needs Python 3.9+. Clone the repo, then ./run.sh (Mac) or run.bat (Windows) and open http://localhost:8765. Exports land in exports/ inside the repo. Desktop builds are produced by CI (.github/workflows/build.yml, PyInstaller + pywebview) on every v* tag.

Roadmap

  • Automatic import into ProPresenter (currently manual drag-in)
  • More visual types — the tile grid is built to grow

Made by Fynn Projects, custom apps for church production teams, trades and small businesses.

About

Local app that renders church service visuals (countdown timers, spinner wheels) to ProPresenter-ready MP4s

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages