Skip to content
DnsLister Forum

Where domain hunters compare notes

I built offline voice-mimic party game in Flutter (Using one phone or using LAN)

Hey I'm actualy new but I wanted to share that I built a party game called "Copy Cat" and wanted to share it.

The idea: players picks a sound (2-6 sec); download it from the internet

right inside the app (Providers : MyInstants, Meme Soundboard, 101 Soundboards),

record it themselves, or grab any audio file from their phone. The

sound plays, and everybody else tries to imitate it , An on-device

"judge" grades each attempt on 4 axes: melody, rhythm, timbre and

energy. Everything runs over local Wi-Fi one phone hosts, up to 5

join, and no internet is needed at any point after downloading sounds.

Three game modes:

– Random Party: everyone's sounds get mixed and shuffled into

surprise rounds

– Player's Choice : each player picks a sound once; the others imitate

first, and the picker goes last

– Host Challenge: the host lines up sounds from their library and

everyone imitates them in order

Extras: full Arabic + English UI (built Arabic-first), dark/light

themes, a shop with 3D avatars, power-ups and coins.

A few technical bits other Flutter devs might find interesting:

– LAN discovery and host/client traffic with bonsoir (mDNS) plus raw

sockets with length-prefixed framing ; no server, no cloud

– Sound search/download flows through three public soundboard sources,

then everything plays offline from the local library

– Pitch extraction is hand-rolled (RMS + zero-crossing) because no

existing pitch package matched what the scoring needed

– The scoring engine compares each attempt against the original

on-device: melody, rhythm, timbre, energy (regression-tested)

– 3D avatars rendered with flutter_scene

– Riverpod 3 for state, go_router for navigation

Source + APK (Android):

https://github.com/wissam333/Copy_Cat

Download: https://github.com/wissam333/Copy_Cat/releases

Source: r/FlutterDev · by /u/Pale_Finance_8514

Leave a Reply

Your email address will not be published. Required fields are marked *