Zictovid - Des vidéos calées au beat près
Zictovid génère des vidéos musicales 3D verticales dans lesquelles chaque impact d'une balle coïncide exactement avec un beat du morceau. On dépose un morceau, le moteur analyse le signal, en déduit une trajectoire, construit la scène, rend la vidéo.
Le solveur inverse
Le cœur du produit n'est pas Blender, c'est le solveur inverse. La plupart des outils simulent une balle et espèrent qu'elle retombe sur le rythme. Zictovid fait l'inverse : il part des instants de beat et en déduit analytiquement la géométrie du niveau.
La conséquence est double. La synchronisation est exacte par construction plutôt qu'approchée, et le rendu devient déterministe — donc testable unitairement, sans jamais lancer Blender.
Le pipeline complet enchaîne quatre étapes :
- Analyse DSP du morceau, qui produit la carte des beats (
beatmap.json) - Solveur inverse, qui en déduit la géométrie du niveau (
level.json) - Blender, piloté en
bpy, qui construit la scène et rend une vidéo muette - Multiplexage ffmpeg, qui recolle la piste audio et livre le
final.mp4
L'analyse repose sur une détection de pics par sous-bandes de fréquence, sans séparation de sources, suivie de six passes correctives. L'intensité du beat pilote la hauteur du rebond, et le format est nativement vertical : 1080×1920 à 60 fps, prêt pour TikTok, Reels et Shorts.
La rigueur de test
C'est la partie dont je suis le plus satisfait : 735 tests verts, avec des golden files comparés à l'ULP près et une baseline anti-régression à cliquet sur les bancs de mesure. Sur un moteur qui manipule du signal et de la géométrie flottante, c'est ce qui rend le refactoring possible sans casser la synchro.
La stack
- Moteur : Python — DSP, solveur, génération de scène via
bpy, rendu EEVEE, multiplexage ffmpeg - Front : Next.js déployé sur Vercel
- API : NestJS — authentification Google, quotas, Stripe, file de rendu
- Données : PostgreSQL, orchestré en Docker Compose
- Hébergement : worker de rendu auto-hébergé sur une de mes machines, exposé par tunnel Cloudflare — le rendu 3D exige un GPU, il ne peut pas vivre dans un conteneur cloud standard
Des tarifs dérivés du coût réel
Les trois paliers — Découverte gratuit, Créateur à 24 €/mois, Studio à 59 €/mois — ne sortent pas d'une intuition marketing. Le rendu a été mesuré : environ 45 minutes de GPU pour 60 secondes de vidéo sur une RTX 3070 Ti. À ce coût, un plan illimité est intenable, et c'est la durée maximale par vidéo, plus que le nombre de vidéos, qui constitue le vrai levier économique.
Ces valeurs vivent dans un fichier unique de vérité, lu à la fois par la page Tarifs et par le moteur de quotas et de facturation Stripe. Le fichier sépare explicitement ce qui engage — prix en centimes, quotas, identifiants Stripe — de ce qui s'affiche, traduit par langue. Deux grilles de prix qui divergent, c'est un client facturé pour ce qu'il n'a pas.
À découvrir sur zictovid.com.