Work: Absolut Cracking

Nov 13, 2014 | Libraries, Processing / Java, Watz work

AbsolutCracking-00 013

New work for the ongoing Absolut Art Exchange project, by way of invitation from Filip Visnjic of the famous Creative Applications blog. You can find my contributions at my Art Exchange profile.

Absolut Cracking is an extension of a previous experiment with triangle subdivision, first created while working on the ModelbuilderMk2 library. In this series, I exploit subdivision as a means of recursively transforming geometric configurations, applied variously to 2D grids, spheroids and 3D polyhedra.

Continued…

, , , , , , , ,

Mini-linklist of Computer Art history texts

Nov 5, 2014 | Links, Theory

Jessica Rosenkrantz of Nervous System asked on Twitter:

Here’s a quick link list I whipped up in response. These are almost all online resources, usually with downloadable PDFs. It’s obviously not exhaustive and clearly biased towards Western/European computer art.

, , , , , , ,

Code: UMovesDownloader.pde

Aug 30, 2014 | Code, Geo / locative, Open source, Processing / Java

GitHub Gist: UMovesDownloader.pde is a simple tool to batch download all your Moves App data as JSON, from a provided starting date until the current date.

Parts of this code are taken from the MovesMapper vizualization by Nicholas Felton, including his web interface and instructions for getting a valid Moves API access token. MovesMapper is a good example of a locative viz that avoids the typical “here’s a map with some lines and points on it” model.

For a full-featured visualization of Moves data, I recommend Move-O-Scope by Half-Tone.

Continued…

, , , , , , , , , ,

ModelbuilderMk2 news, Aug 2014: unlekker.data and Tile Rendering

Aug 4, 2014 | Code, Libraries, Open source, Processing / Java

ModelbuilderMk2: UTileRenderer demo

High-res output from UTileRendering.pde demo

I haven’t had much news about ModelbuilderMk2 for a while, but I just pushed some new code to the GitHub repo that may be of interest. (Spoiler: Tile rendering for super-highres OpenGL output is back and I added some data stuff.)

  • New: unlekker.data is a new extension to ModelbuilderMk2 for dealing with typical real-world data scenarios, especially parsing, converting and preparing data from various sources (APIs, CSV, SQLite) for visualization. Similarly to how ModelbuilderMk2 relies on UVertex and UVertexList to provide a workflow for creating mesh geometry, UDataPoint and UDataList are intended to represent and manipulate data respectively in its atomic and aggregated forms.

    UDataPoint represents a single data point and stores data fields as a map of key-value pairs. This makes UDataPoint into a universal storage unit for an arbitrary amount of any type of data, whether regular primitives like strings and numbers or object instances. Correspondingly, the UDataList class is a mechanism for collecting and manipulate UDataPoint as a dynamic list. UDataList also automates certain tedious tasks like calculating min/max/median/average bounds on time series data, extracting a list of all values for a given field or filtering the data set by a time range.

    As an example, if you know that all UDataPoints in a UDataList contains a PVector object stored under the key “vec”, the following will produce an ArrayList instance containing all the individual PVector instances:

    UDataList l;
    [..]
    ArrayList pvl=l.getObjectList("vec",PVector.class);

    Continued…

, , , , , ,

Workshop: Intro to Generative Art with Processing (July 6, NYC)

Jun 23, 2014 | Code, Processing / Java, Workshops

Marius Watz: KBG (sound viz)

Workshop: Intro to Generative Art with Processing
Date: Sunday, July 6, Williamsburg, NYC

Participants will be introduced to the principles of Generative Art using Processing, a Java-based coding tool designed specifically for creative applications.

A generative system can take many forms, but essentially the term describes a set of aesthetic rules for creating layout, motion and geometry. Translated to code, these systems are capable of producing an endless variety of forms and visuals. We will look at how to create a generative visual system, from sketching in code to creating professional quality output for print or video.

Examples and topics will include: Useful building blocks and tools-of-the-trade applied to real-world problems, from basic composition and color in code, to more complex issues like geometry and animation. By adding GUI controls and output options for print + video to our sketches, we end up with the makings of a full-fledged generative system.

Continued…

, , , , , ,

Eyeo 2014: Field Reports from the trenches of Art + Tech

Jun 23, 2014 | News, Theory, Watz work

In keeping with tradition, I’ve posted my slide deck from my recent talk at Eyeo 2014: Field Reports from the trenches of Art + Tech

From a speaker perspective, Eyeo audiences are both demanding and tremendously rewarding. There’s no need to explain most basic principles, allowing you to dig further into the real meat of the issues you want to discuss. Which is both awesome and terrifying, since it requires greater precision than your average dog-and-pony show.

The slide deck definitely lacks a lot of detail that I ad-libbed, but you’ll have to wait for the video to come out to get that part.

My thanks as always to Jer Thorp, Dave Schroeder and the Eyeo crew for the awesome opportunity.

Continued…

, , , ,

Code: frameOptions.pde

Jun 22, 2014 | Code, Processing / Java

GitHub Gist: frameOptions.pde Shows how to control the window frame of a Processing app. Disable frame decoration (see init() function), manipulate frame screen position on startup or interactively (see keyPressed(), draw() functions.)

Continued…

, , , ,

Code: iOStoEpochTime.java

May 30, 2014 | Code, Processing / Java, Workshops

GitHub Gist: iOStoEpochTime.java Converts iOS Objective-C timestamps to their Java equivalent. Useful when parsing exported data from iOS backup SQLite files. I’ll post a demo parsing iMessage data shortly, written for my upcoming Quantified Self workshop.

Technical details: Objective-C timestamps (as encountered in iOS SQLite data) are given as seconds since Jan 1, 2001, while Java timestamps represent milliseconds since Jan 1, 1970.

To convert between them we first multiply the Objective-C timestamp by 1000, then we add a pre-calculated millisecond offset representing the difference between Jan 1, 1970 and Jan 1, 2001. This difference is calculated using the java.util.Calendar class, see code below for how this is done.

Continued…

, , , , , ,

Workshop: Intro to Generative Art with Processing (Jun 1, NYC)

May 27, 2014 | Code, Processing / Java, Workshops

Marius Watz: KBG (sound viz)

Workshop: Intro to Generative Art with Processing
Date: Sunday, Jun 1, Williamsburg, NYC

Participants will be introduced to the principles of Generative Art using the Processing programming tool. A generative system can take many forms, but is essentially a set of rules that when translated to code executed is capable of producing an endless variety of forms or visuals. We will look at how a generative visual can be created, from sketching in code to creating professional quality output for print or video.

The examples we will go through include useful some essential building blocks and tools-of-trade, applied to real-world problems. Topics include how to do basic composition and color in code, to more complex issues like creating geometry and animation. By adding GUI controls and print / video output to our sketches we have the makings of a full-fledged generative system.

Continued…

, , , , , ,

Workshop: Quantified Self + Viz with Processing (May 31, NYC)

May 27, 2014 | Code, Processing / Java, Workshops

2013-Seamless-history-mariuswatz

Viz: Seamless.com takeout order history (timestamp demo)

Workshop: Quantified Self and data visualization with Processing
Date: Saturday, May 31, Williamsburg, NYC

This workshop will introduce participants to Quantified Self and personal data tracking, with the aim of creating custom code-driven visualizations.

We will use Processing to parse, analyze and visualize data (CSV, JSON) generated by popular tracking tools, establishing basic principles and useful workflows that can be applied to common QS scenarios.

Continued…


Workshops

Sign up for the workshop mailing list to receive updates. Examples from previous workshops can be seen on OpenProcessing.org.

Also: NYU ITP, Fall 2013: Parametric Design for Digital Fabrication

CODE & FORM supports the coding and teaching activities of Marius Watz. It contains workshop documentation and miscellaneous code (mostly Processing + Java), covering issues related to "creative coding", generative systems, computational geometry and digital fabrication.

Links: Twitter, Flickr, GitHub, OpenProcessing, Generator.x, mwatz.tumblr.com.

Prints for sale: Arcs04 series

Prints for sale: Arcs04 series

Links + social

Recent Posts