Schach im Browser genießen

Vor knapp zwei Jahren stelle ich eine freie Implementierung des Schachspiels für den Browser vor. Neben dieser 2D-Variante existieren auch wunderschöne 3D-Varianten. Eine Implementation dieser Varianten hört auf den Namen Chess3D. Die Darstellung der 3D-Szene erfolgt dort per WebGL. Neben einigen hilfreichen Funktionen wie einer Undo-Funktionalität können Spiele im PGN-Format gespeichert und wieder geladen werden.

Chess3D im Browser

Mit Chess3D können Schachspiele gegen den Computer bestritten werden. Für den Gegner wird auf Garbochess-JS von Gary Linscott zurückgegriffen. Der Quelltext von Chess3D ist auf GitHub zu finden. Er ist unter der GPL3 lizenziert und damit freie Software.

Fabrikator Mini unter Cura und macOS einrichten

Der Fabrikator Mini ist ein günstiger 3D-Drucker. Unter macOS kann er unter anderem mit der Software Cura betrieben werden. Allerdings sollte man die nicht aktuelle Version für macOS nutzen. Stattdessen sollte man die Version 15.04.2 herunterladen und nutzen. In späteren Versionen funktioniert die Zusammenarbeit mit dem Fabrikator Mini nicht mehr so wie sie sollte.

Der Fabrikator Mini in Aktion

Nach dem Anlegen eines neuen Drucker vom Typ RepRap sollten im Basic-Tab folgende Werte eingestellt werden:

Quality
Layer height (mm): 0.1
Shell thickness (mm): 0.8
Enable retraction: true

Fill
Bottom/Top thickness (mm): 0.6
Fill Density: 20

Speed and Temperature
Print speed (mm/s): 20
Printing temperature (C): 210

Support
Support type: None
Platform adhesion type: None

Filament
Diameter (mm): 1.75
Flow (%): 100

In den Advanced-Tab gehören folgende Einstellungen:

Machine
Nozzle size (mm): 0.4

Retraction
Speed (mm/s): 30
Distance (mm): 3

Quality
Initial layer thickness (mm): 0.3
Initial layer line width (%): 100
Cut off object bottom (mm): 0.0
Dual extrusion overlap (mm): 0.15

Speed
Travel speed (mm/s): 30
Bottom layer speed (mm/s): 20
Infill speed (mm/s): 0.0
Top/bottom speed (mm/s) 0.0
Outher shell speed (mm/s): 0.0
Inner shell speed (mm/s) 0.0

Cool
Minimal layer time (sec): 5
Enabling cooling fan: true

Als Start-GCode empfiehlt es sich folgenden Code zu nutzen:

M53; enable feed-hold
G0 Z2.0; always start from the same height to compensate backlash
G28; move extruder to 0
G28; move extruder to 0
G28; move extruder to 0
G28; move extruder to 0
G28; move extruder to 0
M420 R0.0 E0.0 D0.0 P0.1 ; turn the lights on
M107; turn off fan
G64 P0.05 Q0.05; path blending settings
G23; unretract

Der End-GCode sollte so aussehen:

M104 P0
G0 X49 Y49 Z70; move the extruder out of the way
M420 R0.0 E0.1 D0.0 P0.6 ; signalize end of print
M140 P0 ; turn off heatbed

Der Start- und End-GCode sind sicherlich nicht die optimale Version, funktionieren mit dem Fabrikator Mini aber schon halbwegs passabel. Mit diesen Einstellungen kann anschließend der erste Druck getätigt werden. Je nach Modell kann dies einige Minuten bis Stunden in Anspruch nehmen.

OpenStreetMap

Heute gibt es wieder eine neue Folge des seeseekey.net-Podcasts und Matthias ist wieder mit von der Partie. Das Thema diesmal: OpenStreetMap – die freie Weltkarte.

Dabei geht es unter anderem um die Geschichte von OpenStreetMap, der Möglichkeit des Beitragens und deren Besonderheiten, sowie die Nutzung und Lizenzierung von OpenStreetMap-Daten. Der Podcast kann über den entsprechenden Feed abonniert werden.

Falls noch nicht geschehen, könnt ihr Deus ex machina in eurem Podcatcher abonnieren oder eine Bewertung auf Apple Podcasts hinterlassen. Daneben ist die Unterstützung über Tone H möglich.

3D-Stadtsimulation im Browser

Sim City sollte jedem der sich halbwegs für Spiele interessiert ein Begriff sein. Dabei handelt es sich um eine ursprünglich zweidimensionale Simulation einer Stadt. Das klassische Sim City wurde vor einigen Jahren in Form von Micropolis unter einer freien Lizenz veröffentlicht. Mit 3d.city wurde dieses Prinzip nun in die dritte Dimension und in den Browser befördert.

3d.city am Beispiel einer kleinen Stadt

3d.city am Beispiel einer kleinen Stadt

Für die Simulation nutzt 3d.city die Javascript-Implementation micropolisJS bzw. baut darauf auf und nutzt für die 3D-Darstellung die three.js-Engine. Das Spiel ist unter der GPL lizenziert und damit freie Software. Der Quelltext ist auf GitHub zu finden. Ausprobiert werden kann 3d.city unter lo-th.github.io/3d.city/.

Babylon

Mit den in den letzten Jahren zunehmenden Fähigkeiten der Browser, tauchten vermehrt Engines auf, mit denen einfach 2D und 3D Anwendungen und Spiele programmiert werden konnten. Eine dieser Engine ist dabei Babylon.js. Dabei handelt es sich um eine auf HTML5 und WebGL basierende 3D-Engine, welche in Javascript implementiert ist. Sie enthält unter anderem einen kompletten Szenengraph mit Entitäten wie Licht, Kameras, Materialien und Meshes. Daneben deckt die Funktionalität der Engine Themengebiete wie Kollision, Physik, Animation, Partikel und vieles mehr ab.

Ein einfaches Beispiel

Ein einfaches Beispiel

Ausprobiert werden kann die Engine auf dem Babylon.js Playground. Lizenziert ist Babylon.js unter der Apache License in der Version 2.0 und damit freie Software. Der dazugehörige Quelltext ist auf GitHub zu finden. Daneben kann die Engine auch über die offizielle Seite unter babylonjs.com bezogen werden.