Tag: inspiration

201308Jan

BananaBread: 3D-Ego-Shooter auf WebGL-Basis

Dass WebGL eine vielversprechende Technologie darstellt, zeigen schon seit geraumer Zeit die Demos von Three.js, die inzwischen einige interessante Effekte aufzeigen, die durch OpenGL ermöglicht werden (Shader, Bump-Maps, Normal Mapping, usw.). Einen ersten 3D-Ego-Shooter, der Gerbrauch von WebGL und der Sauerbraten-Engine (Cube 2) macht, stellt BananaBread dar. Das Projekt ist in C++ und OpenGL entwickelt worden und wird durch den LLVM-Compiler Emscripten in JavaScript und WebGL übersetzt.

BananaBread - 3D-Ego-Shooter auf WebGL-Basis

Das Spiel lässt sich in gewohnter Manier mit den Tasten W, A, S, D und der Maus steuern. Es gibt verschiedene Waffen und Levels, in denen der Spieler gegen Bots antreten kann. Es wurde sogar eine Third-Person-Ansicht integriert, die über die Taste 9 aktiviert werden kann. Die beiden Entwickler Alon Zakai und Ehsan Akhgari von Mozilla möchten mit dem Projekt zeigen, was mit WebGL und modernen Webbrowsern möglich ist.

201209Dez

FightCode: Kampf der JavaScript-Roboter durch GitHub

Dass GitHub nicht nur zum Verwalten von Quellcode genutzt werden kann, zeigt ein aktuelles Projekt, das im Rahmen der "GitHub Game Off" entwickelt wurde. Das Projekt FightCode stellt ein "GitHub-Spiel" dar, das Gebrauch von GitHub-Bereichen (Forking, Pushing) macht, um Spieler gegeneinander antreten zu lassen. Bei dem Spiel geht es darum, einen virtuellen Roboter per JavaScript zu steuern, um damit einen Rivalen besiegen zu können. Die Darstellung erfolgt über HTML5-Canvas.

FightCode - Killing Robots for Fun

Ein Roboter kann über eine spezielle API gesteuert werden, bei der verschiedene Ereignisse zur Verfügung stehen. So kann beispielsweise gesteuert werden, wenn der Roboter eine Wand berührt, einen Gegner sichtet oder getroffen wurde. Die Besonderheit liegt darin, dass bei der Entwicklung des Roboters im Vorschau-Modus lediglich ein Beispiel-Roboter geladen wird, gegen den der eigene Roboter antreten kann. Es ist also immer ungewiss, wie der Roboter des anderen Spielers programmiert ist, da beide Entwickler nur auf vordefinierte Ereignisse reagieren können. So bleibt es eine Überraschung, wie der Kampf gegen einen Rivalen letztendlich ausgehen wird.
Wer eigene Roboter erstellen möchte und gegen andere Spieler antreten will, benötigt lediglich einen GitHub-Account. Auf der Website findet sich nach dem Einloggen eine API-Dokumentation, die alle verfügbaren Befehle erläutert.

201227Nov

FloraJS: Simulation von natürlichen Systemen

Intelligente Comptersimulationen sind nicht zwingend an komplexe Programmiersprachen genküpft, sondern lassen sich durchaus auch im Webbrowser darstellen. Das Simulieren von künstlichen Verhaltensweisen innerhalb eines Ökosystems ist ein umfangreiches Themengebiet, zu dem es unterschiedliche Quellen gibt. Eine grafische Umsetzung in JavaScript, die mit der Entwicklung eines Frameworks verbunden war, wäre FloraJS. Der Entwickler Vince Allen zeigt auf seiner Seite Umsetzungen von verschiedenen natürlichen Systemen, die auf Ideen eines Buches basieren.

FloraJS - Simulate natural systems with JavaScript

Grundsätzlich geht es um grafische Objekte, die an unterschiedliche Verhaltensweisen geknüpft sind und sogenannte "Vehikel" repräsentieren. Ein Vehikel bewegt sich also innerhalb einer simulierten Umgebung und erkundet diese auf eine eigene Weise.
Bei FloraJS selbst handelt es sich um ein kleines JavaScript-Framework, mit dem solche natürlichen Systeme umgesetzt werden können. Auf dieser Seite finden sich diverse Beispiele, welche den Einsatz der Bibliothek sehr gut veranschaulichen. Die eigentliche Darstellung und Animation wird über HTML5/Canvas erreicht.

201212Nov

The Nature of Code: eBook über Physik und Processing

Die Programmierung von grafischen Anwendungen und interaktiven Animationen erfordert ein gewisses Verständnis für die Grundlagen der Mathematik bzw. Physik. Diese lassen sich in diversen Tutorials aneignen und ausprobieren, wobei die Umsetzung natürlich nicht unbedingt einfacher wird. Wer sich für diese Thematik im Zusammenhang mit der Entwicklungsumgebung Processing interessiert, kann sich das online verfügbare eBook "The Nature of Code" ansehen.

The Nature of Code

In dem umfangreichen Werk von Daniel Shiffman werden Themen wie Vektoren, Kräfte, Schwingungen, Partikelsysteme, Physik-Bibliotheken, Fraktale oder neurale Netzwerke behandelt und anhand von ausführlichen Texten, Zeichnungen und Code-Beispielen unterstützt. Der Autor beginnt auf einer einfachen Ebene und beleuchtet die unterschiedlichen Bereiche sehr gewissenhaft, so dass die Materie gut verständlich ist. Das eBook ist auch für Entwickler interessant, die nicht mit Processing arbeiten möchten, da sich das Wissen auch auf andere Sprachen anwenden lässt, wenn ein paar Anpassungen vorgenommen werden.

201213Sep

Avgrund: CSS3-Konzept für modales Dialogfeld

Auf der Seite des schwedischen Webentwicklers Hakim El Hattab finden sich immer wieder interessante Projekte: Neben dem HTML5-Präsentationstool Reveal.js findet sich dort auch ein CSS3-Konzept für ein modales Dialogfeld, das den Namen Avgrund trägt.

Avgrund - A modal UI concept

Beim Klick auf eine entsprechenden Schaltfläche der Demo-Seite wird die komplette Seitenfläche abgedunkelt in den Hintergrund versetzt und mit einem Unschärfe-Effekt versehen (nur WebKit). Die Dialogbox wird zeitgleich eingeblendet und hebt sich durch die Effekte stärker vom Vordergrund ab. Das Konzept ähnelt etwas dem "Mission Control"-Modul von Mac OS X, was in diesem Fall der Benutzerfreundlichkeit zugutekommt.
Aktuell findet sich ein weiteres Projekt auf der Seite von Hakim, das ein HTML5-Canvas-Experiment darstellt.

201227Aug

oriDomi: DOM-Elemente mit CSS3 falten

Mit CSS3 eröffnen sich gerade durch die perspektivischen Transformationen interessante Möglichkeiten. DOM-Elemente können dadurch räumlicher dargestellt und animiert werden. Ein schönes Anwendungsbeispiel dafür ist das Skript oriDomi, mit dem sich Elemente virtuell falten lassen. Dabei können verschiedene Richtungen und die Perspektive definiert werden.

oriDomi - Fold up the DOM like paper

Weiterhin lassen sich die Anzahl der horizontalen und vertikalen Unterteilungen sowie die Geschwindigkeit anpassen. Ein Code-Beispiel:

  • var $domi = $('.my-div').oriDomi({ vPanels: 3, hPanels: 10, perspective: 200, speed: 500, shading: false });
  • $domi.oriDomi('accordion', -30, 'right');

Das Skript ist nicht von einem Framework abhängig, kann aber bei Bedarf zusammen mit jQuery eingesetzt werden. Wem der Effekt gefällt, der kann sich bei GitHub den Quellcode ansehen.

201227Mär

CSS3D Clouds: Studie über animierte Wolken mit CSS

Die Erzeugung von volumetrischen Wolken zählt hauptsächlich zum Bereich der Spieleentwicklung. Dort gibt es verschiedene Möglichkeiten, um realistisch wirkende Wolken darzustellen. Im Webbrowser hat Mr.doob bereits ein Beispiel auf WebGL-Basis entwickelt, das schon in ROME eingesetzt wurde. Ganz ohne WebGL und nur durch den Einsatz von CSS3D-Transformationen kommt dieses Experiment von Jaume Sánchez aus.

CSS3D Clouds

Im Endeffekt ähnelt das Beispiel der WebGL-Umsetzung von Mr.doob: Es werden einfach zweidimensionale Flächen (Sprites) mit Texturen belegt und durch Verzerrungen im Raum angeordnet. Durch die geschickte Kombination von verschiedenen Texturen entstehen derartige Wolken-Bilder. Das CSS-Beispiel erlaubt zudem, Explosionen und Rauch hinzuzufügen. Der Effekt ist sehr anschaulich und demonstriert, was sich mit relativ wenig Aufwand darstellen lässt.

201208Feb

Mobile UI Patterns: Beispiele für mobile Anwendungen

Inspirationsquellen werden im Bereich des Webdesigns immer wichtiger, da hier stetig neue Trends entstehen. Seiten wie Pattern Tap, Design Meltdown oder MephoBox leisten hier sehr gute Dienste. Wer auch Inspirationen für mobile Anwendungen sucht, ist nun auch mit den Mobile UI Patterns gut bedient: Hier finden sich seit kurzem diverse Screenshots von iPhone-Anwendungen, die in unterschiedliche Kategorien eingeteilt sind.

Mobile UI Patterns

Mobile UI Patterns stellt eine sehr einfache Sammlung ohne besondere Such- oder Filtermöglichkeiten dar. Elemente können durch Kategorien angesehen werden — dazu zählen beispielsweise "Activity Feeds", "Dashboard Navigation", "Grouped Table Views" oder "Custom Tab Navigation".
Die Sammlung ist derzeit noch recht übersichtlich, dürfte aber mit der Zeit wachsen und gehört daher in die Lesezeichen.