Le pitch
Growing Everyday est un jardin virtuel où une nouvelle fleur pousse chaque année depuis janvier 2023. Chaque fleur met un an à atteindre sa taille maximale — on regarde le jardin grandir jour après jour.
Essayer : presque.cool/growing-everyday/
Pourquoi ce projet
Après avoir créé “A Flower a Day” pour Théodore, j’ai voulu faire un autre projet de fleurs procédurales pour Daphnée — mais avec une intention différente.
“A Flower a Day” a quelque chose de mélancolique : une fleur, quelques formes colorées, une composition un peu différente chaque jour mais cela reste très figé. “Growing Everyday” est plus optimiste, tourné vers l’avenir : voir une fleur grandir un peu plus chaque jour, regarder un jardin pousser au fil des mois et des années, représenter le temps qui passe.
L’objectif était simplement de faire quelque chose qui me plaise.
Comment ça fonctionne
Une fleur par année : Le jardin démarre le 13 janvier 2023. Chaque année, une nouvelle fleur apparaît et rejoint les précédentes.
Croissance progressive :
Chaque fleur grandit de 0% à 100% sur exactement 365 jours. Mais la croissance ne suit pas une ligne droite — elle suit une courbe progress^1.8, un ease-in qui ralentit fortement le début. Au bout de 10% du temps écoulé, la tige n’a atteint que 0.6% de sa hauteur. Au bout de 50% du temps, elle est à 29%. La fleur pousse lentement, puis accélère — comme dans la réalité.
Pétales conditionnels : Les pétales n’apparaissent qu’à partir de 15% de croissance (environ 55 jours). Une fois visibles, ils s’ouvrent selon une courbe racine carrée — ils atteignent rapidement une taille lisible, puis s’affinent progressivement. Concrètement, les pétales démarrent à 25% de leur taille finale et montent jusqu’à 100%. Ce double rythme (tige lente + pétales rapides) permet de reconnaître la fleur bien avant qu’elle ne soit complète.
Couleurs saisonnières : Les tiges et feuilles varient selon la saison — plus muted en hiver, plus jaunes en automne. Les pétales suivent une palette saisonnière distincte.
Placement automatique : Les fleurs sont réparties horizontalement dans le jardin. Chaque fleur a un seed unique basé sur son année, garantissant que la même fleur est générée de manière identique.
Tester le temps qui passe :
Un algorithme qui met un an à se dérouler pose un problème de vérification. En développement, je peux naviguer jour par jour via l’URL (format YYYYMMDD) ou afficher le jardin à n’importe quelle date. C’est rudimentaire, mais suffisant pour valider que les seuils et les courbes fonctionnent comme prévu.
Stack technique
- React + TypeScript
- Vite comme bundler (avec SWC)
- Tailwind CSS en mode CSS-first
- SVG natif pour le rendu des illustrations
- PRNG Mulberry32 pour la génération déterministe
- PWA — installable, offline
- i18n maison (français/anglais)
- Zustand pour le state management
- Persistance localStorage pour les jardins sauvegardés
- Compression — Brotli + Gzip sur les assets
- CSP — Content-Security-Policy avec hashes auto-générés
Évolutions
| Date | Version | Description |
|---|---|---|
| Jan 2026 | 2.0 | Refonte React — Migration vers React/TypeScript pour presque.cool |
| Jan 2024 | 1.0 | Prototype initial — Génération procédurale de base en Vanilla JS |
Bilan
Durée : environ 2 semaines (janvier 2026).
Ce que j’ai appris :
- A Flower a Day est contemplatif et figé — une fleur par jour, toujours la même, déjà révolue. Growing Everyday est son inverse : une fleur qui met un an à s’ouvrir, un jardin qu’on regarde épaissir au fil des mois. J’ai fait le second parce que le premier m’avait laissé un peu mélancolique, sans trop comprendre pourquoi.
- L’intérêt de combiner deux courbes de croissance différentes (ease-in pour la tige, racine carrée pour les pétales) pour créer un rythme visuel qui ne soit ni linéaire ni artificiel.
Ce que je referais pareil :
- Réutiliser les composants d’interface de A Flower a Day. Les deux projets partagent beaucoup visuellement, et partir d’une base existante m’a permis de me concentrer sur ce qui est différent : le moteur de croissance.
Ce que je changerais :
- J’essaierais de faire des fleurs plus jolies. Je ne suis pas entièrement satisfait de leur apparence, surtout quand elles sont très petites — le rendu à 5% de croissance n’est pas très lisible.
The pitch
Growing Everyday is a digital garden where a new flower grows every year since January 2023. Each flower takes a full year to reach its maximum size — you watch the garden grow day after day.
Try it: presque.cool/growing-everyday/
Why this project
After creating “A Flower a Day” for Theodore, I wanted to make another procedural flower project for Daphne — but with a different intention.
“A Flower a Day” has something melancholic about it: one flower, a few colored shapes, a slightly different composition each day but it remains very static. “Growing Everyday” is more optimistic, forward-looking: watching a flower grow a little more each day, seeing a garden develop over months and years, representing the passage of time.
The goal was simply to make something that pleased me.
How it works
One flower per year: The garden starts on January 13, 2023. Each year, a new flower appears and joins the previous ones.
Progressive growth:
Each flower grows from 0% to 100% over exactly 365 days. But growth doesn’t follow a straight line — it follows a progress^1.8 curve, an ease-in that heavily slows the start. After 10% of the time has elapsed, the stem has only reached 0.6% of its height. After 50%, it’s at 29%. The flower grows slowly, then accelerates — just like in reality.
Conditional petals: Petals only appear after 15% growth (about 55 days). Once visible, they open following a square root curve — they quickly reach a readable size, then gradually refine. Concretely, petals start at 25% of their final size and grow to 100%. This dual rhythm (slow stem + fast petals) lets you recognize the flower well before it’s complete.
Seasonal colors: Stems and leaves vary with the season — more muted in winter, more yellow in autumn. Petals follow a distinct seasonal palette.
Automatic placement: Flowers are distributed horizontally across the garden. Each flower has a unique seed based on its year, ensuring the same flower is generated identically.
Testing the passage of time:
An algorithm that takes a year to unfold poses a verification problem. During development, I can navigate day by day via the URL (format YYYYMMDD) or display the garden at any date. It’s basic, but sufficient to validate that thresholds and curves work as expected.
Tech stack
- React + TypeScript
- Vite as bundler (with SWC)
- Tailwind CSS in CSS-first mode
- Native SVG for illustration rendering
- Mulberry32 PRNG for deterministic generation
- PWA — installable, offline
- i18n custom (French/English)
- Zustand for state management
- localStorage persistence for saved gardens
- Compression — Brotli + Gzip on assets
- CSP — Content-Security-Policy with auto-generated hashes
Timeline
| Date | Version | Description |
|---|---|---|
| Jan 2026 | 2.0 | React rewrite — Migration to React/TypeScript for presque.cool |
| Jan 2024 | 1.0 | Initial prototype — Basic procedural generation in Vanilla JS |
Takeaways
Duration: about 2 weeks (January 2026).
What I learned:
- A Flower a Day is contemplative and static — one flower a day, always the same, already done. Growing Everyday is its opposite: a flower that takes a year to open, a garden you watch thicken over months. I made the second one because the first had left me a little melancholy, without fully understanding why.
- The value of combining two different growth curves (ease-in for the stem, square root for the petals) to create a visual rhythm that’s neither linear nor artificial.
What I’d do the same:
- Reusing A Flower a Day’s interface components. The two projects share a lot visually, and starting from an existing base let me focus on what’s different: the growth engine.
What I’d change:
- I would try to make the flowers prettier. I’m not entirely satisfied with their appearance, especially when they’re very small — the rendering at 5% growth isn’t very readable.