Byg en stæreflok-simulator med slug staereflok. Hver fugl tegnes som en lille prik, men bevæger sig i et reelt tredimensionelt simulationsrum med position (x,y,z) og hastighedsvektor (vx,vy,vz), som projiceres til skærmen. Målet er en samlet, organisk flok med flydende bevægelse, formændringer og retningsskift, der forplanter sig lokalt. Følg build.md for integration og afprøvning. Bevar A ordret og adskil brugerens idé fra denne AI-udbyggede prompt. Forskningsgrundlag og tydelig afgrænsning: - Ballerini m.fl. (2008), “Interaction ruling animal collective behavior depends on topological rather than metric distance: Evidence from a field study”, PNAS, DOI 10.1073/pnas.0711437105: https://pubmed.ncbi.nlm.nih.gov/18227508/ og https://pmc.ncbi.nlm.nih.gov/articles/PMC2234121/ . Undersøgelsen af rekonstruerede 3D-flokke peger på samspil med omkring seks til syv nærmeste naboer frem for alle fugle inden for én fast radius. Brug syv som forklarligt standardvalg, ikke som en universel naturkonstant. - Attanasi m.fl. (2014), “Information transfer and behavioural inertia in starling flocks”, Nature Physics, DOI 10.1038/nphys3035: https://www.nature.com/articles/nphys3035 og https://pubmed.ncbi.nlm.nih.gov/25264452/ . Studiet beskriver hurtig udbredelse af drejeretning med begrænset dæmpning og en teori med drejeinerti. Det betyder ikke, at et tilfældigt valg hos én fugl er dokumenteret som den universelle årsag til alle flokdrej. Læs primærkilderne og forklar på dansk forskellen mellem observeret adfærd, forskernes model og appens pædagogiske forenklinger. Vis diskrete kildelinks. Vi ønsker en model inspireret af forskningen; påstå ikke at en almindelig alignment/separation/cohesion-model alene reproducerer studiets bølgefysik præcist. Model: - Lad hver fugl orientere sig efter sine syv nærmeste naboer i 3D, bevare passende afstand ved kort rækkevidde og søge svagt mod nabogruppen. Brug en fysisk afstand til kollisionsundgåelse, mens nabovalget til retningsfølgning er topologisk. Undgå at én central leder eller global flokretning dikterer alle fugles drej. - Brug kontinuerte vektorer, begrænset acceleration og drejehastighed samt en glat dynamik for drejning (fx vinkelhastighed med inerti og dæmpning). Bevægelsen må ikke være et gitter med fire eller otte retninger. Undgå øjeblikkelige U-vendinger og ny, uafhængig støj i hver renderframe. - Indfør af og til en kortvarig, lokal drejepåvirkning på én fugl eller en lille nabogruppe. Påvirkningen er appens valgte forsøgsmodel, ikke en påstand om at alle virkelige drej opstår sådan. Lad den spredes via nabosamspil over simulationstid; anvend ikke samme drejeimpuls direkte på alle fugle. Tilbyd også knappen “Start et retningsskift”, så brugeren ikke skal vente på et tilfældigt event. - Efterstræb at man kan se en forsinket bølge af ændret retning gennem flokken, mens den overvejende holder sammen. Tilpas parametre og afprøv forløbet visuelt. En let dæmpet demonstration er acceptabel; hvis modellen blot giver langsom diffus tilpasning, skal det forklares frem for at kaldes en tro kopi af den målte bølge. - Afgræns simulationsområdet med en svag, glat randstyring, så flokken kan dreje naturligt og blive i området. Forklar dette som en visuel afgrænsning, ikke en biologisk regel. Ingen usynlig teleportering ved kanten eller hårde refleksioner. Undgå kunstige evige cirkler om en fast central attraktør. Visualisering og oplevelse: - Lad selve den animerede flok dominere. Brug en rolig himmelbaggrund og fine, kontrastfulde prikker. Vis dybde diskret via punktstørrelse/intensitet og perspektiv, uden at fugle forsvinder ved kameraets nærplan. Kameraet må gerne bevæge sig langsomt; tilbyd et fast kamera, så man kan skelne kamerabevægelse fra flokkens drej. - Tilføj et pædagogisk lag, der kan markere en valgt fugl og dens nærmeste naboer, vise hastighedsvektorer og eventuelt farve fuglene midlertidigt efter deres lokale reaktion på et drej. Illustrationen skal hjælpe med at se udbredelsen, ikke være en kunstigt tidsstyret farvebølge, som udgiver sig for at være selve dynamikken. - Giv en kort forklaring af nabofølgning, afstand, drej og 3D-projektion. Brug pause/fortsæt, nulstilling, “Start et retningsskift” og et lille antal forståelige kontroller (fx antal fugle, nabofølgning og drejeinerti). Alle normale kontroller skal kunne bruges med tastatur og touch. Tilføj en tekstlig status og respekter reduceret bevægelse ved at tilbyde pause frem for uundgåelig animation. - Start med et flot, stabilt standardscenarie på nogle hundrede fugle. Brug en passende søgestruktur eller begræns antal/tilpas kvalitet for mobil. Nærmeste-nabosøgning må ikke stiltiende ændres til kun en fast radius uden forklaring. Hold en fast simulationstidsstep og en frame-rate-uafhængig rendering. Pause stopper også impulser; resize og baggrundsfaner må ikke nulstille flokken eller indhente lange tidsspring. - Brug almindelig JavaScript og Canvas 2D med egen 3D-projektion, medmindre en anden løsning er konkret nødvendig. Ingen backend, tracking, eksterne biblioteker eller netværkskrav. Den selvstændige HTML skal fungere offline. Afprøvning: Adskil simuleringsmotoren fra rendering, og brug en seedet generator til tests. Test 3D-nabovalg mod kontrollerede punktopsætninger, begrænset hastighed/acceleration, bevægelse i alle tre akser, endelige koordinater over lange forløb, pause og projektionens grænsetilfælde. Undersøg i en kontrolleret nabokæde, at kun den valgte fugl/gruppe får en direkte drejeimpuls, og at fjernere fugle reagerer senere via lokal vekselvirkning; mål eller vis begrænsningerne uden at love en universel bølgehastighed. Tilføj tests/browser/staereflok.spec.mjs, der afprøver pause/fortsæt, retningsskift og lokal reaktion, nabovisning, kontroller, nulstilling, resize og standalone-udgaven. Gennemse animeret bevægelse ved desktop- og mobilviewport; et skærmbillede alene kan ikke godkende, om flokken flyver flydende. Implementeringspræcisering (AI, 28. oktober 2026): Brug 240 fugle som standard og 80–360 som valgmuligheder. Beregn de syv nærmeste med eksakt 3D-afstand; genbrug nabografen i fire faste tidsstep af 1/60 sekund for at begrænse mobilbelastning. Integrér begrænset vinkelhastighed med dæmpning, lokal retningsfølgning, kortdistancefrastødning og svag nabosamling. En enkelt fugl påvirkes i 0,7 sekund ved manuelt eller periodisk drej. Reaktionsfarve måles som faktisk ændring af hastighedsretningen siden forsøgets start; den er ikke et kausalitetsbevis. Vis antal reagerende fugle og forløbet simulationstid. Fast kamera er standard. Reduced motion starter pauset. Ingen lagring eller eksterne runtimekald. Accept: pause fryser modellen, direkte påvirkning rammer kun én fugl, en kontrolleret nabokæde reagerer i lokal rækkefølge, nulstilling genskaber seedet start, og standalone virker uden netværk.