Software

Delphi-kode skaber liv i Miniatur Wunderland

Over 150.000 linjers Delphi-kode sørger for ”kontrollerede tilfældigheder” i verdens største modelunivers. En programmør har lavet det hele alene.

Miniatur Wunderland, Hamborgs største turistattraktion med over 1,2 millioner besøgende årligt, er verdens største modeljernbane – eller rettere modelunivers, da de to etager i det gamle pakhus i Hamborgs Speicherstadt - ud over modeljernbanen - summer af livlig bil-, fly- og skibstrafik. Dertil et imponerende lyshav fra omkring 35.000 LED-lys, når det med 15 minutters mellemrum bliver nattemørkt i Wunderland.

En model af Hamborgs ufærdige og skandaleramte Elbphilharmonie-bygning åbner sig med mellemrum, så musikken flyder ud, og publikum kan kigge ind i den imponerende koncertsal. Brandbiler rykker ud med jævne mellemrum, og DJ Bobo’s show på festivalscenen ryger ud til over 20.000 publikummere, der - som alt andet i Wunderland - er lavet i målestoksforholdet 1:87. Bag scenen er der ”skyggestationer”, hvor togene holder, inden de skal i aktion, ladestationer, hvor bilerne kører ind og via sidespejlene får ny energi til den videre kørsel, og elevatorplatforme, der positionerer flyene til næste indflyvning i Knuffingen-lufthavnen. 

Målet for grundlæggerne, tvillingebrødrene Frederik og Gerrit Braun, har fra starten i 2005 været at skabe et miniatureunivers, der afspejler den rigtige verden i dens mangfoldighed. Mange små scener – nogle godt skjult, så man skal booke sig ind på en bag-kulissen-tur for at se dem – afspejler, at livet også består af uheld og sex. Og måske illustrerer det også, at Miniatur Wunderland er en meget stor legeplads for modelbyggere og andet godtfolk, der for eksempel kan finde på bygge et porno-shoot op bag et bjerg, så det ikke umiddelbart kan ses af publikum!

Kontrollerede tilfældigheder

Gerrit Braun er programmøren bag dynamikken i modeluniverset. Alt er programmeret i Delphi, og det samlede antal kodelinjer har rundet 150.000. For Gerrit Braun ligger der en stor skønhed i de muligheder, softwaren giver.

– Ud over selve landskaberne og figurerne ligger den største succes i det ”geregelter Zufall”, som vi har skabt med softwaren. Det hele er ikke fast programmeret, så objekterne reagerer som i det virkelige liv på de tilfældigheder, der opstår. Jeg synes, der ligger en skønhed i det, som måske allerbedst er kommet til udtryk i lufthavnen, siger han.

Bare et enkelt eksempel er oversigten over ankomster og afgange, som ses på skærmene ved lufthavnen: En forsinkelse af et fly på grund af en eller anden fejl i styringen eller et fysisk problem afspejles automatisk i oversigten.

20 beregninger i sekundet

Selve modeljernbanen er baseret på standardsoftwaren RailWare. Der er lavet egenudviklede udvidelser, men programmeringsmæssigt har det været en mindre udfordring end bil-, fly- og skibstrafikken. Det primære grundlag for den livlige trafik - hvor fly skal vende uden at støde mod andre objekter, biler skal holde bag en bil, der holder for rødt, og køre, når det bliver grønt, og den forankørende sætter i bevægelse, og skibe skal manøvrere på plads ved kajen med millimeters nøjagtighed - er den nøjagtige position af det enkelte fartøj, leveret af det interne satellitsystem, kombineret med størrelsen på fartøjet og ikke mindst en meget stor mængde parametre og viden om den aktuelle tilstand af omgivelserne.

Parametrene er for eksempel strækningen, stigninger og vigepligtsregler, og de aktuelle omgivelser kan være et andet køretøj, der skifter vognbane, et udrykningskøretøj, der nærmer sig, eller et batteri, der er ved at løbe tør. For at trigge den rigtige adfærd laves der en beregning for hvert køretøj 20 gange i sekundet.  

Erkendelsen af, at der skulle føjes en form for intelligens til systemet, kom ifølge Gerrit Braun i forbindelse med introduktionen af brandbilerne.

– Når brandbilerne kører ud til en brand, skal de køre med udrykning på, men ikke når de kører hjem. Måske banalt, men en erkendelse, der gjorde, at opgaven blev en anden og større, forklarer han.

Grundsystemet i biltrafikken er Faller Car System, men det indeholder som standard ingen styringsmekanisme, så det måtte kodes fra bunden. Den primære kommunikationskanal til modeluniversets bevægelige objekter er infrarød. 

Legesygen styrer

Bortset fra en enkelt webudvikler har Gerrit Braun fra starten været ene om programmeringsopgaverne i Wunderland. Og det gælder alt fra selve miniatureuniverset til klimaanlæg og kasseapparater. En erkendt sårbarhed, men samtidig også en stor styrke, forklarer Sebastian Drechsler, halvbror til Gerrit og Frederik og ansvarlig for PR og marketing.

– Vi kan omsætte nye ideer til praksis meget hurtigt. I stedet for at skrive lange specifikationer går Gerrit hjem og laver noget kode til en ide, der er opstået i løbet af dagen. Så prøver vi det af, laver de nødvendige justeringer og sætter det så i drift. Vi er virkelig meget drevet af en "trial-and-error"-tilgang til vores løsninger, siger han.

Ifølge ham er de først og fremmest meget legesyge og opfatter ikke sig selv som en virksomhed i traditionel forstand.

– Vi søger derfor heller ikke efter teknologiske løsninger, der kan gøre tingene billigere og mere effektive, men snarere løsninger, der tillader endnu flere detaljer og endnu bedre understøtter vores legesyge, siger han.

Vil lave tingene selv

Ud over den store egenudvikling i Delphi har Miniatur Wunderland en lille udviklingsafdeling på to mand, der bygger mikro-controllere i samarbejde med Gerrit. De ekstreme krav til udnyttelse af pladsen i et 1:87-målestoksforhold er en af grundene til selv at bygge mikro-controllerne - en anden er grundholdningen blandt folkene i Miniatur Wunderland: Man kan godt lide at lave tingene selv, fordi det er det rigtigt sjove! 

Ønsket om uafhængighed gør sig også gældende på økonomisiden. Der har aldrig været eksterne investorer inde over, og Miniatur Wunderland har altid været ejet af tvillingebrødrene sammen med en enkelt partner. På trods af statussen som Hamborgs mest populære attraktion modtager man heller ikke finansiel støtte fra byen.  

Den udvikling, der er foregået i Miniatur Wunderland gennem de seneste 13 år, burde i princippet kaste indbringende spinoffs af sig. Man har forsøgt sig, men gør det ikke længere.

– På et tidspunkt forsøgte vi os med at levere printkort til lysstyring, men stoppede hurtigt, da det bare ikke er vores forretning. Vi ønsker ikke at blive en teknologivirksomhed med alt, hvad det indebærer. Vi vil lave noget, der kan bruges her i huset til at gøre oplevelserne for vores gæster endnu større, siger Sebastian Drechsler.

Uafhængighed af servere

En maskinpark på omkring 50 Windows-pc’er og Linux-servere driver alle installationer i Miniatur Wunderland. Til hvert afsnit – USA, Skandinavien, Schweiz og så videre – er der knyttet en pc, som afvikler styringsprogrammet. Man har valgt denne løsning for at sikre, at det højst er et afsnit, der stopper, hvis styringsprogrammet går ned. Og hvis pc’en strejker, er failover-løsningen hurtig udskiftning til en anden. 

På serverne ligger der blandt andet en SQL-database med togdata og et filsystem til lysstyring, men man har af princip forsøgt at være så lidt afhængig af serverne som muligt – igen for at undgå, at alt pludselig står stille. 

Kunstig intelligens interessant

Selve kildekoden på styringssoftwaren rører Gerrit kun, hvis der skal implementeres ny funktionalitet. Et nyt køretøj i landskabet er blot et nyt datasæt og kan sættes i drift ved hjælp af simpel konfiguration. Det tidskrævende arbejde ligger i den fysiske konstruktion af køretøjet, der også foregår i huset.

Trods fokus på den teknologi, der her og nu kan levere oplevelser for de mange gæster, holder man sig løbende orienteret om fremtidige teknologier. En form for kunstig intelligens, hvor køretøjerne med tiden akkumulerer viden og automatisk optimerer bevægelsesmønstrene i landskabet, kunne for eksempel være interessant, men det ligger ikke lige om hjørnet.