Kategorie: Gastautoren

Manuel Odendahl_the happy abspack crowd

31. Oktober 2009 von Chris

Pasted Graphic 5(click the pix.) Im Januar 2009 führte ich einige Experimente mit meiner neu erworbenen CNC-Fräse durch. Eine CNC-Fräse ist eine normale Fräse (in diesem Fall eine Oberkopfportalfräse), die allerdings nicht manuell, sondern von einem Computer gesteuert wird. (pix_1)

Bei meinen ersten Versuchen wurden Löcher gebohrt, Quadrate geschnitten und einfache Schriftzüge graviert. Recht schnell wurde allerdings klar, dass der Ansatz existierender CAD- (zum Entwerfen von Objekten) und CAM-Software (zur Umwandlung des Entwurfs zu einer Folge von Maschinenbefehlen, die die Fräse ausführen kann) nicht wirklich meinem Umgang mit Technik entsprach, weil sie entweder vom Workflow sehr limitiert waren (keine Skriptmöglichkeiten z.B.) oder so hochprofessionell, dass die Einarbeitungszeit eher einem Maschinenbaustudium entsprach. In solchen Fällen zögere ich nie lange, und so beschloss ich, meine eigene CAD- und CAM-Software zu schreiben, am besten noch in Common Lisp, einer recht obskuren und sagenumwobenen Sprache ( http://de.wikipedia.org/wiki/Common_Lisp ). Eine (intensive) Woche später war diese Software in einem brauchbaren Zustand (zu bewundern auf http://cl-mill.googlecode.com/ , der Programmcode ist nur unter dem Einfluss von mittelstarken Alkoholika zu ertragen), samt Bitmaptracing, Kurvenoffsetberechnung, Jobmanagement und Platinenlayoutimport. (pix_2)

Das erste eigentliche CNC-Projekt für diese Software war das Fräsen einzelner Holzbretter, auf die eine USB-MIDI-Kontroller Entwicklungsplatine fixiert werden sollte. Der riesige Vorteil bei dem Einsatz von »offener« Software (in dem Sinne, dass der Programmquellcode erstens erhältlich ist, und zweitens auch malleabel, also einfach genug zu modifizieren und erweitern) ist, dass dadurch generative Ansätze möglich werden. Z.B. der Ansatz, jedes Holzbrett für jede einzelne Entwicklungsplatine anders zu gestalten und zu fräsen, ohne dass der Aufwand für den Entwickler/Designer/Maschinenoperator besonders wächst. Bei diesem konkreten Projekt werden auf der Oberseite jedes Brettes drei tanzende Männchen gefräst, so dass aus jedem einzelnen Board ein Unikat wurde. (pix_3)

Zum Ausprobieren von grafischen und generativen Ideen ist die Processing-Umgebung, die unter http://processing.org/ zu finden ist, nahezu ideal. Ähnlich zu den BASIC-Interpretern (http://de.wikipedia.org/wiki/BASIC) auf früheren Heimcomputern, oder zu der LOGO-Schildkröte (http://de.wikipedia.org/wiki/Logo_(Programmiersprache), bietet Processing die ideale Spielwiese für kleine Programmschnipsel und eine sehr inspirierende Lernumgebung. Die tanzenden Männchen sollten von einem Processing-Programm erzeugt werden, um anschließend von der CAM-Software zu einem Brett zusammengestellt werden. Jedes Monster besitzt zwei Arme, einen Körper und zwei Augen. Um jedes Monster anders zu gestalten, müssen diese Elemente verändert werden. Für die Augen bieten sich Ellipsen an, deren Position und Form variiert wird. Für den Körper und die Arme werden Bézier-Kurven eingesetzt (diese Kurven werden von zwei Anfangspunkten und zwei Kontrollpunkten bestimmt, die interessante Krümmungen erzeugen). Es müssen also die Anfangspunkte und Kontrollpunkte von drei Bézier-Kurven berechnet werden, sowie die Position und Form von zwei Ellipsen. Insgesamt also 32 verschiedene Zahlen, die natürlich nicht komplett zufällig sein dürfen. Der linke Kontrollpunkt des Körpers z.B. befindet sich auf einer Gerade, die im Winkel von 60 bis 90 Grad zur Horizontale steht. Je kleiner der Winkel, desto spitzer die linke Seite des Männchens. Mit ähnlichen Überlegungen wurde die Formeln für die restlichen Glieder erzeugt. (pix_Quellcode + pix_4)

Der erste Versuch sah dann ungefähr so aus: http://bl0rg.net/~manuel/yay-mon/maennchen.pde (code), http://bl0rg.net/~manuel/yay-mon/ (applet). Ganz optimal ist das Programm noch nicht, erlaubt aber die Visualisierung und die Anpassung der Generierungsparameter. Im nächsten Ansatz wird noch die Dicke der Arme und Augen durch einen breiteren Pinsel kontrolliert, und zum Spaß werden ganz viele Männchen zu einer jubelnden Menge zusammengestellt: http://bl0rg.net/~manuel/abspack-crowd/maennchen.pde http://bl0rg.net/~manuel/abspack-crowd/maennchenclass.pde (code) http://bl0rg.net/~manuel/abspack-crowd/ (applet). So wie eine Bleistiftskizze, sind bei dem Programmcode hier die Entstehungsschritte und Radierungen und Ergänzungen sichtbar. (pix_5)

Nach dem Erfolg dieser virtuellen Experimente mit Processing war es nur noch ein schnelles Schieben von Bits und Bytes, bis die CNC-Fräse dank Schrittmotoren die Brücke zwischen virtueller und harter Welt herstellen konnte. (pix_6 + pix_7)

interview part I | II
wesen sounzzz
ruin&wesen

english version
January 2009 was a month of experimentation with my newly acquired CNC mill. A CNC mill is like a normal mill, except that the position of the milling head (or the piece of material, depending on the mill design) is controlled by a computer. (pix_1)

My first tests were of course drilling holes, milling out squares and engraving simple texts and designs. I quickly became aware that conventional approaches to CAD (designing objects) and CAM (converting the design into a sequence of machining steps) did not really suit my development style: either they were quite limited workflow-wise (no scripting for example, which is something I swear by), or highly specialized (and expensive) pieces of professional software requiring a degree in engineering. In cases like these, I usually don’t hesitate long and reinvent the wheel by writing my own software (don’t try this at home, of course). In this case, I wrote a »programmable« environment for generating G-Code (the machine language telling the mill how to move its head). The software was written in Common Lisp, a quite obscure and very expressive language, that in my hands usually ends up in writing chaotic software. A (very intense) week later, I had written a pretty functional software (which you can get at http://cl-mill.googlecode.com, the sourcecode kind of reflects the way it was written though). It features bitmap tracing, offset milling curves, job management and importing PCB-layout files. (pix_2)

The first »real« project for the whole CNC contraption was milling small wooden boards to help mount prototype PCBs for a USB-MIDI-Controller. The biggest advantage of having an »open« program (in the sense that you can get, modify and extend the sourcecode) is that it is easy to use generative approaches (in which part of the design is actually created by an algorithm). The idea for the prototype controller was to have a different wooden board for each PCB, without increasing the design and production workload too much. In this project, I came up with the idea to have dancing people on top of the board. Each board would have a few different creatures on top. (pix_3)

A very nice software to try out graphical and generative ideas is the Processing-environment, that can be downloaded at http://processing.org/ . It is similar to older BASIC-interpreters that would run on older homecomputers, or to the LOGO programming language (yes, the turtle). Processing gives you an ideal playground to try out small »sketches« of software, and provides for rapid feedback: enter the code, press run, modify the code, press run again, etc… The small dancing creatures are generated by a processing sketch, and are converted by the CNC software to actually make a wooden board (with holes for screws, a logo and a serial number). Each creature has two arms, a body and two eyes. To make each creature unique, these elements have to be varied in size and shape (that is, the parameters controlling the geometrical objects behind these elements have to be varied). The eyes are made out of two ellipses, of which the size and position can be modified (however, the ellipse itself is restricted to a certain area of the body, so that one eye doesn’t up on the arms of the creature, or outside its head). The body and the arms are made out of bezier splines (bezier splines are controlled by a starting point, an end point, and two control points that determine their curvature). Thus, we need to generate 8 control values for each spline, and 4 values for each eye. The whole creature is thus described by 32 values that are in specific relations to each other. For example, the first control point of the body spline is situated at a 60 to 90 degree angle left-upward from the starting point. Similar thinking hides behind the calculations for the other parameters of the creature. (pix_Quellcode + pix_4)

The first tries at generating a creature can be seen in the black image above. http://bl0rg.net/~manuel/yay-mon/maennchen.pde (code), http://bl0rg.net/~manuel/yay-mon/ (applet) The program is not yet quite finished: the shape of the creature makes it impossible to mill. However it is quite useful to see which parameters need to be adjusted. In the next try, the width of the arms was made bigger, and a lot of creatures were put together to create a dancing crowd. http://bl0rg.net/~manuel/abspack-crowd/maennchen.pde http://bl0rg.net/~manuel/abspack-crowd/maennchenclass.pde (code) http://bl0rg.net/~manuel/abspack-crowd/ (applet) As with a pencil sketch, the code shows the different steps of its creation. (pix_5)

Declaring this second test a success, it was just a matter of writing a few more program lines to convert the image of the creatures to G-Code that would be interpreted by the CNC mill, linking the real world to a digital idea. (pix_6 + pix_7)

wesen sounzzz
ruin&wesen

Theorie und Praxis: happy abspack crowd

31. Oktober 2009 von Chris
YouTube Preview Image

happy crowd

Die praktische Anwendung der Programmierung mit Processing.

Die Twitter-Erfolgsmuster

12. Oktober 2009 von Chris

gastautor: volker bombien, Lektor|Senior Editor, O'ReillyWir freuen uns, Volker Bombien mit seinem ersten Artikel als Gastautor in der Inspiration Lounge zu begrüßen:

Ich beschäftige mich in diesem Beitrag mit der Frage, welche Faktoren dafür ausschlaggebend waren, dass Twitter so erfolgreich wurde.

1. Twitter ging von Beginn (2006) mit einer offenen Schnittstelle an den Start. Diese so genannte API (Application Programming Interface) erlaubt es, alle Tweets aller Twitterer abzufischen und in andere Dienste zu integrieren.

2. Dies führte zu der Ausbildung einer ausgeprägten Kernel-/Plugin-Architektur, DAS Wachstumsmodell von moderenen Open-Source-Projekten wie Linux, Firefox oder Nagios. Die Twitter-Kernanwendung wurde schon bald von einer schier unüberschaubaren Zusatzdienste umrahmt.

3. Dadurch wurde Twitter extrem anwendungsflexibel – ein Dienst für viele unterschiedliche User-Bedürfnisse. War Twitter von seinen Entwicklern anfänglich wirklich gedacht als eine Online-Anwendung, die Freunde untereinander darüber informierte: »What are you doing«, so wurden die Anwendungszwecke durch Zusatzdienste täglich erweitert.

4. Es hört sich paradox an, aber gerade die Abwesenheit eines erfolgversprechenden Business-Modells ermöglichte Twitter erst die Flexibilität, sich zu dem zu entwickeln, was es heute ist.

5. Der Twitter-Account ist kostenlos und innerhalb weniger Minuten ohne jedes technische Vorwissen selbst erstellt. Die Twitter-Mitgliedschaft verpflichtet zu nichts und kann jederzeit vom User gekündigt werden.

6. Es wird keinerlei (kultur-)technisches Vorwissen benötigt, um zu twittern. Es gibt kein richtiges und kein falsches Twittern und keine Instanz, die festlegt, was korrekt oder was verpönt ist. Vorerfahrungen in anderen Online-Kulturtechniken wie Bloggen o.ä. sind keine notwendigen Qualifikationen fürs Twittern; jeder kann auf den Zug aufspringen.

7. Twitter kann von vielen Geräten aus empfangen und bedient werden: PC, Handy, Smartphone, Netbook. Die Beschränkung auf 140 Zeichen ermöglicht die erträgliche Darstellung auch auf mobilen Geräten. Ein Tweet ist auch schnell von unterwegs geschrieben, ein Foto leicht gemacht und als Link getwittert.

8. Menschen müssen das unübersichtliche Internet nach für sie relevanten Inhalten filtern. Freunde stellen dabei einen sehr effektiven, vertrauenswürdigen Filter dar. Was der Freund (die Institution/die Firma) für interessant hält, ist auch für mich interessant.

9. Twitter kann ohne großen zusätzlichen Zeitaufwand in den beruflichen und privaten Online-Alltag integriert werden. Das asynchrone Kommunikationsmedium Twitter erlaubt jederzeit einen temporären Ausstieg aus dem Lesen des Tweet-Stromes; wenn wieder mehr Zeit vorhanden ist, widmet man sich intensiver um seine Tweets.

10. Bin ich bei Twitter Alltagsjournalist oder Leser solcher Tweets? Bin ich Konsument von Nachrichten – oder Produzent? Empfehle ich dieses Restaurant oder folge ich der Empfehlung eines Twitterers? Kommentiere ich meinen Alltag dokumentaristisch oder erfreue ich mich an den originellen Kommentar-Tweets anderer? Das Verschwimmen der Sender-/Rezipienten-Grenzen macht schwindelig – ein schönes Gefühl.

11. In Twitter wird vieles quantifizierbar: wie viele Followers, wie viele Followings? Wie viele Tweets empfangen, wie viele verschickt? Wie viele Resonanz durch Retweeten? Das vielfältige Quantifizieren erleichtert das Erlernen einer recht frischen, neuen Kulturtechnik: soziale Beziehungen online auf- bzw. ausbauen und pflegen.

(volker bombien)

Anm. der Redaktion:
Punkt 4.
ist mal wieder ein schönes Beispiel dafür, dass es offensichtlich immer wieder Menschen gibt, die es nicht so machen, wie es nach gängigen Business-Ratgebern gemacht werden muss – und die, man höre und staune, trotzdem oder gerade deshalb etwas auf die Beine stellen.