Zurück

Blumenfeld

Ein Blumenfeld in Echtzeit im Browser: Bewegen Sie die Maus oder machen Sie eine Pinch-Geste mit beiden Händen vor der Kamera, und Blütenwellen erblühen entlang Ihrer Spur — Leuchten, Dichte und Tempo lassen sich frei einstellen.

Autor: 希彼赫
Live ausprobieren
BlumenfeldLive ausprobieren

Über dieses Projekt

Bloom ist ein Blumenfeld in Echtzeit, das im Browser läuft: Fahren Sie mit der Maus über das Feld oder schalten Sie die Kamera ein und machen Sie mit beiden Händen eine Pinch-Geste — Blütenwellen erblühen entlang Ihrer Spur.

Die Blumen werden in Echtzeit aus remote geladenen 3D-Blumenmodellen gerendert, mit einstellbarem Wirkradius, Blühtempo, Leuchten, Blumengröße, Dichte und Wellentempo — ein spielbares interaktives Werk und zugleich ein Prüfstand dafür, wie sich 3D-Assets in Echtzeit verhalten.

Highlights

  1. Fahren Sie mit der Maus über das Feld, und Blütenwellen erblühen entlang Ihrer Spur
  2. Ziehen zum Drehen der Kamera, Scrollen zum Zoomen — betrachten Sie das Feld aus jedem Winkel
  3. Kamera einschalten und zweimal pinchen — schon erblüht das ganze Feld auf einmal
  4. Leuchten, Dichte, Wellentempo sowie Größe und Sättigung jeder Blume sind einstellbar; mit H blenden Sie die UI für eine saubere Aufnahme aus

Technische Analyse

  • 3D-Assets · Tripo Text-to-3D

    Alle sechs Blumen auf dem Feld — weiß, gelb, Gänseblümchen, violett, blau und rot — kommen direkt aus Tripo Text-to-3D: einen Prompt schreiben, ein GLB mit PBR-Materialien zurückbekommen. Jede Blume bleibt bei 2.000–8.000 Dreiecken — nicht aus ästhetischem Perfektionismus, sondern weil das Feld fast fünftausend davon gleichzeitig pflanzt: Je leichter die Modelle, desto stabiler die Framerate.

    Jedes Modell folgt derselben Konvention: Ausrichtung nach +Z, Basis im Ursprung, etwa eine Einheit hoch. Der Code braucht für keine einzelne Blume eine Sonderbehandlung — eine neue einsetzen, und es funktioniert einfach.

  • Tausende gleichzeitig · InstancedMesh

    Dass im Browser ein paar tausend Blumen gleichzeitig aufblühen, liegt an InstancedMesh von Three.js: Pro Art gibt es nur eine Geometrie und ein Material, das Kopieren übernimmt das Instancing — standardmäßig rund 4.900 Blüten, ein Draw Call pro Art, deutlich weniger Last, als man erwarten würde.

    Auch die Blüh-Animation fasst die Modelle nie an: Der Skalierungswert jeder Instanz wird in der instanceMatrix aktualisiert, und jede Blume wächst vom flachen Spross bis zur vollen Blüte.

  • Blütenwellen · Raycasting + radiale Wellenfront

    Streicht die Maus vorbei, projiziert ein Raycaster den Cursor auf die Wiese; der Auftreffpunkt wird zum Ursprung der Blütenwelle. Jede Blume schaut, wie weit sie von diesem Punkt entfernt ist, und entscheidet danach, wann sie sich öffnet — nahe zuerst, ferne später, Ring um Ring nach außen. Klingt aufwendig, im Kern steckt aber nur eine einfache Distanzberechnung.

  • Gestensteuerung · MediaPipe Hands

    Bei eingeschalteter Kamera verfolgt MediaPipe Hands in Echtzeit 21 Landmarken der Hand. Der Code achtet auf genau eine Sache: ob sich Daumen und Zeigefinger zusammenziehen — zweimal kneifen, und das ganze Feld blüht genau dort auf, wohin die Fingerspitze zeigt. Um Fehlauslösungen zu vermeiden, zählt nur die rechte Hand.

  • Glow · Bloom-Postprocessing

    Der träumerische Schleier über der Szene stammt aus dem UnrealBloomPass-Postprocessing: Der Glow des gesamten Felds liegt standardmäßig bei 0,46 — leuchtend, ohne auszubrennen. Jede Blumenart behält zusätzlich eigene Regler für Glow und Sättigung, sodass sich die Atmosphäre voll aufdrehen lässt, ohne die Eigenfarbe einer Blume zu überdecken.