Het begin
Zeespiegel Het is allemaal begonnen met de Milankovic-parameters. Ik heb een simpel scriptje geschreven dat een paar sinus functies (de zeespiegels) kon optellen en tekenen. Zo heb ik leren begrijpen hoe de zeespiegel beweegt.

Het eerste model
Versie 1.x Vervolgens heb ik een heel simpel model gemaakt dat alleen sediment toevoer en bodemdaling had ingebouwd. Toen dat werkte heb ik een deel van de eigenschappen instelbaar gemaakt, zoals de breedte van de zee, de sediment aanvoer en de bodemdaling. Na dat te hebben getest heb ik de zeespiegel toegevoegd. Daar kwamen hele simpele plaatjes uit. Ook waren deze nog niet gelijk aan de werkelijkheid. Om de sediment aanvoer realistischer te maken heb ik dat stuk code herschreven.
De volgende stap was het toevoegen van SHALLOW (ook: ondiep) sediment en UNDEFINED_SEDIMENT.
In deze versie van het model zaten nog vervelende fouten. Om die op te lossen was het beter om het geheel opnieuw te bouwen. Dat klinkt misschien erg ingrijpend, maar dat valt eigenlijk wel mee. Sommige stukken code kun je weer hergebruiken, maar de code van de echte simulatie heb ik opnieuw getypt. Omdat je van de vorige versie al weet welke kant je op moet, kun je een slimmere manier bedenken om iets in de code voor elkaar te krijgen.

De tweede versie
In de tweede versie waren de bugs verdwenen. De code van de simulatie was teruggebracht van een paar honderd tot ongeveer 50 regels.
Versie 2.7 Doordat de code een stuk beter was opgebouwd was het véél makkelijker om nieuwe onderdelen toe te voegen. Zo heb ik een nieuwe soort sediment toegevoegd (SUBAERIAL), kleureffecten en informatie per blokje sediment.
Ook heb ik in deze versie de kleuren van de soorten sediment een paar keer aangepast, dat is mogelijk nog te zien op enkele plaatjes.
Een andere nieuwe mogelijkheid was de export naar Animated GIF-afbeeldingen. Animated GIF-afbeeldingen zijn bewegende plaatjes. Als er voor die optie gekozen is, maakt het model een plaatje na iedere stap. De plaatjes worden op het eind samengevoegd tot een Animated GIF-afbeelding.

Een nieuwe website
Toen het model goed werkte ben ik begonnen aan een nieuwe website (de huidige). Hiervoor stond het model op een hele simpele pagina.

Meer mogelijkheden
Zand, zilt en klei Omdat het nu zo makkelijk was om nieuwe mogelijkheden toe te voegen aan het model, ging ik experimenteren. Het toevoegen van nieuwe mogelijkheden vind ik een erg leuk deel van het programmeren. Ten eerste maak je iets dat echt werkt, je start het programma en er wordt iets gedaan. En als je zoiets nog uitgebreider en ingewikkelder kan maken is dat altijd leuk om te doen.
Nu ging ik bedenken wat ik er nog aan zou kunnen toevoegen. Ik had drie dingen bedacht: een variatie in de toevoer van sediment, verschillende soorten sediment en een soort aardbevingen.
Eerst heb ik het model zo aangepast dat er nu drie soorten sediment werden aangevoerd: zand, klei en silt. Dat werkte goed, maar het was te moeilijk om het naar werkelijkheid te programmeren. Dus heb ik het teruggebracht naar alleen zand en klei. Ik denk niet dat dit wel helemaal natuurgetrouw is, maar wel beter dan eerst.
Ten tweede ben ik gaan experimenteren met een variabele invoer van sediment. Dit was een simpele constante die in een formule werd ingevoerd (constante*sedimentToevoer*zeepsiegel). Deze simpele formule werkte wel tijdens het testen, maar toen ik even later andere getallen gebruikte als invoer kwamen er hele rare resultaten. Deze functie (Sediment - sealevel) is nog steeds te vinden in het model, maar werkt dus eigenlijk niet.
Ongelijkde bodemdaling En ten derde de aardbevingen. Het bleek dat aardbevingen eigenlijk op een ander niveau plaatsvonden, dus dat zou beter zijn voor een heel ander model. De ongelijke bodemdaling (uneven subsidence) is hier wel uit voort gekomen. Hierbij daalt de bodem links op een andere snelheid dan rechts.
Ook heb ik recent runs toegevoegd. Het geeft de gebruiker de mogelijkheid om een naam in te vullen voor de run van het model. De instellingen worden dan opgeslagen op de server. De naam wordt weergegeven in een lijstje, wanneer een gebruiker daarop klikt worden alle instellingen gewijzigd naar de opgeslagen instellingen. Op deze manier kun je dus je instellingen delen met anderen.
Later heb ik het zo gemaakt dat de recent runs per versie worden opgeslagen. Ook wordt de uitkomst van een recent run opgeslagen, zo hoeft de gebruiker die de recent run opvraagd niet te wachten op de simulatie.

De derde versie
Java versie Deze versie is geschreven in Java. Ik heb deze versie gemaakt omdat de PHP versie te langzaam werd, daarnaast kan de Java versie in theorie 231-1 stappen uitrekenen op een zeebodem van 231-1 bij 231-1 blokken, met de PHP versie gaat dat nooit lukken (in Java ook niet, want de computer loopt waarschijnlijk eerder al vast).
Mijn laptop kan (met de basis instellingen) 800 stappen per seconde uitrekenen, de PHP versie zou daar misschien wel een kwartier over doen.
De puntjes op de i
De laatste paar weken voor de presentatie avond heb ik het model veel getest en allemaal kleine (grafische) foutjes opgelost. Ook heb ik de tekst op deze website afgemaakt.

Wat heb ik er van geleerd?
In de eerste plaats heb ik geleerd hoe de zeebodem verandert door alle invloeden. Eigenlijk alles wat op de website te zien en te lezen is wist ik van tevoren nog niet. Aan de technische kant heb ik ook veel geleerd. De technische kant is te verdelen in een aantal losse onderwerpen: html, php, java en algemeen logisch nadenken bij programmeren. In al die onderwerpen heb ik wel iets geleerd of versterkt. Java is nog het nieuwste voor me, dus daar heb ik ook het meeste van geleerd.