Kedama: Ein massiv-paralleles skriptgesteuertes Partikelsystem

Einführung

Kedama ist japanisch für "flauschiger Ball", oder "wolliger Ball". Die letzte Version ist Kedama 2.7. Das Original dieser Einführung in englisch ist zu finden unter http://www.is.titech.ac.jp/~ohshima/squeak/kedama/

1. Start

2. Die Kedama-Welt

Bild 0Bild 1Bild 2

3. Hole dir ein Teilchen

Bild 3

4. Atome

Bild 4

5. Abprallende Atome

6. Pfade

Die Befehlszeilen in einem Skript werden zeilenweise ausgeführt. Das heisst, die nächste Zeile wird erst dann ausgeführt, wenn alles, was zur vorherigen Zeile gehört, komplett beendet ist. Zum Beispiel wird in diesem Beispiel (Bild 6) erst dann "patch diffusePatchVariable" ausgeführt, nachdem jede turtle der turtle1-Brut die "patchValueIn:"-Aktion beendet hat.
Bild 5Bild 6

7. Epidemie

Hier kannst du simulieren, die die Ansteckung mit einer Krankheit funktioniert. Jede turtle hat eine Variable "infiziert" und wenn eine nicht-infizierte turtle eine infizierte trifft, dann steckt sie sich an. Ist dir aufgefallen, dass in beiden Skripten gleiche Zeilen vorkommen? Die kannst du in ein eigenes Skript schreiben und dieses dann einfach ins den beiden anderen Skripten aufrufen. Ist dir die Simulation zu langsam? Erhöhe die Tick-Rate, indem du auf die Uhr klickst und die Maus gedrückt hälst. Du erhälst ein Menü zum ändern der Rate, 50 ticks pro Sekunde sollten ausreichen.
Bild 7Bild 8Bild 9

8. Tickrate, Diffusionsrate, Verdunstungsrate, logarithmische und lineare Anzeige etc.

Wie oben schon erwähnt ist die Tick-Rate entscheidend für eine interessante Simulation. Drücke auf die Uhr eines laufenden Skriptes und ändere die Tick-Rate. Die Diffusionsrate (Streuungsrate) legt fest, wie stark die Durchdringung pro Tick ist, die Verdunstungsrate gibt den Zerfall pro Tick an.

Intern wird ein Slot für einen patch als 32-Bit vorzeichenloser Integer abgebildet. Es gibt zwei Arten für die Darstellung, logarithmisch (Standard) und linear. Das wird festgelegt durch die "useLogDisplay"-Variable im Betrachter eines patches. Für die logarithmische Darstellung wird der Wert im patch benutzt. Die Stärke hängt ab vom Wert in der "scaleMax"-Kachel. Steht dort der Wert 1 oder 0 wird er transparent dargestellt, ein Wert größer oder gleich "scaleMax" wird undurchsichtig dargestellt, und die Werte dazwischen werden teilweise durchlässig dargestellt.

Im linearen Modus (useLogDisplay = false) wird der Wert im patch um den Wert in der "shiftAmount"-Kachel verschoben und der resultierende Wert wird als Alpha-Wert von 0 bis 255 dargestellt. Du kannst turtles anzeigen("show") oder verstecken ("hide") mit den ensprechenden Befehlen im turtles-Betrachter.

9. Bergauf

Turtles können den Gradienten der patch values erkennen. Siehe Ameisen-Beispiel.

10. Die Welt mit turtles füllen

Du kannst die Welt mit turtles füllen. If you drop a sketch, you get the turtles in the sketch'es pixel pattern. See the "pixel" example.

13. Winkel und Entfernung

Siehe Pixel-Beispiel und Waldbrand-Beispiel.

Beispiele


Kontakt

Yoshiki Ohshima
Viewpoints Research Institute
1209 Grand Central
Glendale, CA 91201
Übersetzer:
Rita Freudenberg
Universität Magdeburg, FIN-ISG
PSF 4120
39014 Magdeburg
rita (at) isg.cs.uni-magdeburg.de