nbriz / threejs_playGnd

pedagogical + experimental tool/space/editor for three.js/webGL
55 stars 16 forks source link

threejs_playGnd

// http://threejsplaygnd.brangerbriz.net/

"...Ideology is 'modeled' in software" - Alexander Galloway, The Interface Effect (2012)

"the computer world deals with imaginary, arbitrary made up stuff that was all made up by somebody. Everything you see was designed and put there by someone. [...] There are so many ideas to care about, and with ideas comes the politics of ideas." - Ted Nelson, The Myth of Technology/Computers for Cynics(2012)

the threejs_playGnd is a digital literacy (agency) artware + ntro to three.js/webGL (interactive/generative 3D in the browser) which is modeled after an experimental new-media art ethic.

I mean 'ethic' not in the traditional 'moral' sense, but in the general sense: as a set of principles for practice in accordance with some convention. In this case the 'practice' is an experimental new-media art one; rather than traditional approaches to programming centered around 'best practices' + conventions (stability, structure, hierarchy, clear goals, debugging) the _playGnd is instead modeled on new-media ethics (experimenting, playing, copying+pasting, remixing, sharing). You learn to + make webGL sketches (using the three.js library) by ‘considerately fux’n around’. The _playGnd has three sections (+this page): the [1] graphix[toCode] interface, the [2] realtime editor, && the [3] sketches archive

[1] graphix[toCode] interface

"Software is the medium that is not a medium. [...] Code is never viewed as it is. Instead code must be compiled, interpreted, parsed, and otherwise driven into hiding by still larger globs of code. Hence the principle of obfuscation." - Alexander Galloway, The Interface Effect (2012)

In this first section you generate code for basic three.js geometry using a GUI (graphical user interface). Traditionally GUI’s ‘obfuscate’ code. In the interest of making things more accessible they hide the code, and as a consequence compromise digital literacy. In the _playGnd the GUI is still concerned with accessibility, but in a way that augments the code rather than obfuscating it.

threejs playGnd tutorial 1 (experimental new-media art perspective)
threejs_playGnd - Tutorial 1

[2] threejs [realtime] editor

"An iPhone is not technology, it's packaging and conventions. [...] Your software choices are like any addiction or religion, they want your loyalty and they want your money and they want you to think like them. [...] it's culture politics masquerading as technology." - Ted Nelson, The Myth of Technology/Computers for Cynics(2012)

Traditionally we don’t tend to think of our tools as being ‘political’, but software isn’t neutral. It reflex and imposes the politix of the folks who create it (some, like Galloway, argue it is itself ideology). The _playGnd is no less political and no less bias than any other digital tool, but it stems from a different ethic (an experimental new-media art ethic). For this reason you’ll notice that the editor is a little bit different from the convention. First, it’s built into the browser + shares the same space as your sketch, which allows for immediate feedback >> you can experiment, tinker, play in ‘realtime.’ Second, the editor includes a ‘snippets’ menu to encourage copying + pasting + modifying + collaging code.

threejs playGnd tutorial 2 (experimental new-media art perspective)
threejs_playGnd - Tutorial 2

[3] sketches archive

after you finish working on a sketch in the editor you can ‘archive_it’, which adds your sketch to the xanalogically inspired archive. You can view all the other sketches saved from the _playGnd in the archives as well as remix (fork + edit your own variation of) any sketch in the archive.

threejs playGnd tutorial 3 (experimental new-media art perspective)
threejs_playGnd - Tutorial 3

"The detailed forms of algorithmic interaction and play required today of the computer-using public is, in my mind, so exactly akin to writing code that the division between the two must certainly be ascribed to other ends. Perhaps it has to do with the creation and maintenance of another class of priest-like specialists[...]" - Alexander Galloway, The Interface Effect (2012)

"Guardianship of the computer can no longer be left to a priesthood. I see this as just one example of the creeping evil of Professionalism" - Ted Nelson, Computer Lib/Dream Machines (1974)

credz + shoutOutz

the threejs_playGnd was developed by the same practice/ethics it encourages + is both literally && conceptually a remix/collage of worx && ideas.

built on the shoulders of these open source projects:
three.js (most importantly)
++
HTML Editor (heavily modified version),
CodeMirror,
and dat.GUI

++ also makes use of
AsciiEffect.js ( by zz85 )
CSS3DRenderer.js (by mr doob )
Detector.js (by alteredq + mr doob )
ShaderToon.js (by alteredq + mr doob )
proxy.php (by Abdul Qabiz )
and tween.js (by sole )

++ inspired by the ideas/worx of
Katie Salen,
Mary Flanagan,
Alexander Galloway,
Martin Heidegger,
Marshall McLuhan,
and most importantly
Ted Nelson && mr doob