image image


Neues von der Knotenschachtel

Karsten Wolf hat seine persönliche Fork der Nodebox 1 erneut überarbeitet. Für die, die es noch nicht wissen: Nodebox ist eine freie (MIT-Lizenz) Python-Programmierumgebung für MacOS X für die 2D-Graphikprogrammierung (statische, animierte und interaktive Graphiken), die sehr stark von Processing beeinflußt wurde. Während die ursprünglichen Macher nach dem Schwenk zu Nodebox 3 die Lust an dem Spielzeug verloren hatten, hat Karsten es unter seine Fittiche genommen und hält es unermüdlich am Leben. Vor knapp einer Woche schrieb er mir, daß er neben NumPy nun auch SciPy und die Matplotlib in seine Distribution aufgenommen hatte. Damit hat er mir einen großen Wunsch erfüllt.

image

Ich hatte wenig Zeit, aber dieses Wochenende konnte ich wenigstens einen ersten Test wagen und schrieb folgendes kleines, minimalistisches Skript:

import numpy as np
import matplotlib.pyplot as plt

# clear previous plots
# pyplots overlap between runs. If that's a desired feature, comment the following two lines.
plt.cla()
plt.clf()

x = np.linspace(-10, 10, 1000)

plt.plot(x, np.sin(x), "-r", label = "Sinus")
plt.plot(x, np.cos(x), "--g", label = "Cosinus")
plt.xticks([-10, 0, 10])
plt.yticks([-1, 0, 1])
plt.ylim(-2, 2)
plt.legend()
plt.grid()

# save the plot and load it as an image...
plt.savefig("sincos.svg", dpi = 300) # SVG für die Darstellung im Browser
plt.savefig("sincos.png", dpi = 150) # PNG für die Darstellung in Nodebox
image("sincos.png", 0, 0)

Mit den ersten beiden Zeilen werden die notwendigen Importe vorgenommen. Danach werden eventuell vorherige Plots gelöscht, denn die Matplotlib behält sie im Speicher und da Nodebox ja offen bleibt, wären sie bei einem weiteren Lauf immer noch vorhanden. Die Lib ist dafür entworfen, mit NumPy-Arrays zu arbeiten und daher wird dann ein x erzeugt, daß gleichverteilt 1.000 Werte zwischen -10 und 10 enthält. Und daraus lasse ich dann in den nächsten Zeilen eine Sinus- und eine Cosinus-Kurve erzeugen und mit ein paar Verschönerungen plotten. Um diesen Plot nun in der Nodebox anzuziegen, wird er erst als PNG-Datei gespeichert und dann als Bild angezeigt. Die SVG-Datei habe ich zusätzlich erzeugt und sie als Bild oben auf dieser Seite anzeigen lassen. Für einen ersten Versuch doch schon ganz nett, oder?

Caveat: Die Matplotlib benötigt in der aktuellen Version ein MacOS X größer als 10.6 (Snow Leopard), daher läuft die Nodebox nun auch nicht mehr mit dem Schneeleoparden. Ich habe es mit 10.9 und 10.10 getestet, also 10.9 und höher geht. Rechner mit 10.7 oder 10.8 haben weder Karsten noch ich im Zugriff, daher können wir darüber nichts sagen. Karsten, der auf einem Rechner noch mit dem Schneeleoparden unterwegs ist, wird eventuell eine Version der Nodebox ohne die Matplotlib erstellen, die wieder mit MacOS X 10.6 läuft.

Was ist sonst noch neu?

  • arc: Wie das funktioniert, kann man sich in New Functions/Example arc *.py anschauen.

  • die Nodebox Library ist jetzt als Ordner im Archiv mit dabei. Eventuell muß man in den Voreinstellungen den Ordner setzen. Ich habe am Wochenende ein wenig damit herumgespielt. Die meisten Beispielprogramme der Bibliotheken liefen bei mir problemlos. Gelegentlich rufen die Beispiele nicht mehr vorhandene Webseiten auf und dann bekommt man zuerst eine leere Liste und dann einen index out of range error angezeigt. Das kann man aber unmöglich der Nodebox zum Vorwurf machen.

  • Variable (var) können jetzt auch Menüs. Schaut Euch das extrem coole Beispiel New Functions/Example var menu 1.py an.

  • Shoebot Dateien (.bot) sind jetzt auch Dokumenttyp in Nodebox. Shoebot ist ein Nodebox1-Clone für Linux/Windows den auch ich auf MacOS X nicht zum Laufen bekommen habe (früher einmal (2009) ging das mit MacPorts). Die Kompatibilität ist hoch, aber die Skripte müssen meist doch noch angepaßt werden. Nodebox braucht den speed()-Befehl, um etwas als Animation zu erkennen, Shoebot nicht, Shoebot hat einen eingebauten circle-Befehl, der Nodebox fehlt. Das ist ein experimentelles Feature, das eventuell wieder verschwindet (ich finde es aber ebenfalls cool).

  • color kann jetzt auch Hex-Strings. Eigentlich nur, um Shoebot-Skripte einfacher ablaufen lassen zu können, aber Menschen, die aus der Farben-Webwelt kommen, wird es ebenfalls freuen, siehe New Functions/Example Color extension 1.py.

  • twyg, ein Python-Tree-Visualizer wurde in die mitgelieferte Library integriert. Beispiele vorhanden, die teilweise extrem tolle Graphiken liefern.

  • Die photobot Library hat viele neue Eigenschaften und Beispieldateien.

Die aktuelle Version 1.9.23 der Nodebox könnt Ihr Euch hier herunterladen und hier gibt es die Quellen auf GitHub. Ich jedenfalls bin begeistert und werde sicher noch weitere Testergebnisse in diesem Blog Kritzelheft veröffentlichen. Still digging!

[Update]: Karsten war fleißig. Die aktuelle Version ist nicht mehr 1.9.23, sondern 1.9.25 und seit 19.9.24 spielt die Knotenschachtel auch wieder mit dem Schneeleoparden. Damit dürften ab 10.6.8 und größer wieder alle OS-Versionen des Macs abgedeckt sein. Wenn jemand ein 10.7 oder 10.8 auf einem seiner Rechner hat und dies testen könnte, wären wir für einen Bericht sehr dankbar.


(Kommentieren) 

image image



Über …

Der Schockwellenreiter ist seit dem 24. April 2000 das Weblog digitale Kritzelheft von Jörg Kantel (Neuköllner, EDV-Leiter, Autor, Netzaktivist und Hundesportler — Reihenfolge rein zufällig). Hier steht, was mir gefällt. Wem es nicht gefällt, der braucht ja nicht mitzulesen. Wer aber mitliest, ist herzlich willkommen und eingeladen, mitzudiskutieren!

Alle eigenen Inhalte des Schockwellenreiters stehen unter einer Creative-Commons-Lizenz, jedoch können fremde Inhalte (speziell Videos, Photos und sonstige Bilder) unter einer anderen Lizenz stehen.

Der Besuch dieser Webseite wird aktuell von der Piwik Webanalyse erfaßt. Hier können Sie der Erfassung widersprechen.

Diese Seite verwendet keine Cookies. Warum auch? Was allerdings die iframes von Amazon, YouTube und Co. machen, entzieht sich meiner Kenntnis.


Werbung


Werbung


image  image  image
image  image  image