Visual Algorithmic Design for Design Applications (A Rant]
-
Dear Fellow SketchUppers
there has been recently a flurry of conversations around visual-algorithmic design (http://www.sketchucation.com/forums/scf/viewtopic.php?f=72&t=11030), in other words, tools that provide a 'proto-typical' end-user the ability to enhance an application in a somewhat easy straight forward way. The concept of end-user programmability, to create a new software application using for instance some form of diagrammatic, graphical environment is certainly not new:
http://www.hypernews.org/~liberte/computing/visual.html
http://en.wikipedia.org/wiki/Visual_programming_language
http://web.engr.oregonstate.edu/~burnett/vpl.html
... nor are end-user development applications tools, some of which even cater to children
http://www.agentsheets.com/
http://toontalk.com/
... and some are more 'serious':
http://www.nwoods.com/
http://www.sanscript.net/
http://msdn.microsoft.com/en-us/library/bb483088.aspxWhat's in my opinion a new or more recent development (forgive me the pun) is the ability to create a connection between end-user computer-graphics design applications (CG) with an add-on of sorts, an end-user visual algorithmic development environment catered specifically to them. To date I find there are three type of visual dev-environments for CG: those for shaders, including materials editors, image-processors or texture generators; those that work directly within or for 3D-modelers; and, there are also thirdly, embedded shader-editors, modules or add-ons available as a means to edit materials within a 3D-modeler.
Herein are some of the most well known examples in each category:
A. Shaders
The free nVidia FX Composer includes mental-mill artist upon installation, an add-on from mental images (which nVidia recently acquired)
http://developer.nvidia.com/object/fx_composer_home.html
http://www.mentalimages.com/2_4_1_mentalmill_ae/
MapZone (free)
http://www.mapzoneeditor.com/
FilterForge, works as add-on to Photoshop or PaintShop Pro but also works standalone
http://www.filterforge.com/features/editor.html
Spiral Graphics' Genetica, image processor and texture-generator
http://www.spiralgraphics.biz/gen2tour/index.htm
World-machine, generates a particular type of images - heightfield-editor - for simulating terrains and exporting 3D-data
http://www.world-machine.com/features.html
Planetside's Terragen, is similar to the previous but more complex/complete
http://www.planetside.co.uk/terragen/tg2/index.shtmlB. 3D-Modelers
ParaCloud is a third-party product, an add-on, that actually requires Excel 2003 (it works from within Excel) and will connect with various modelers
http://paraclouding.com/WP/
Generative Components is Bentley's add-on for algorithmic design within their Building Information Modeling (CAAD) software MicroStation
http://www.bentley.com/en-US/Markets/Building/GenerativeComponents/
Grasshopper is McNeel's own solution to the same above, but obviously for Rhino. At this point Grasshopper is free
http://grasshopper.rhino3d.com/
***Interactive Creative Environment (ICE)***is a soon-to-be released environment for Softimage XSI 7
http://www.softimage.com/products/xsi/ice/default.aspx
LISP Generator is an AutoLISP recorder of sorts for AutoCAD from Beowolf Technology
http://www.beowolftech.com/lispgen/index.htmlC. Embedded Shader Editors in Modelers
Blender
http://wiki.blender.org/index.php/Manual/Compositing_Nodes_Input
Maya's Hypershade
http://www.pixtur.de/img/text_maya/hires/01-overpaint.png
trueSpace
http://www.caligari.com/products/trueSpace/ts75/Brochure/userinterface.asp?Cate=BUserInterfaceI suspect you might be asking yourselves, why is all this relevant or important? In many cases the software tool as it stands is all you might need... and that's perfectly fine. But, I also suggest that often enough human endeavors, especially around creativity, is hindered or at least harnessed by the tools and by the medium. SketchUp, for instance, certainly allows modeling, but how about applying rules of composition, assembly, or geometric proportions or relationships, and without Ruby-coding? How about making the application work differently for each user according to their own field, domain or level of experience or expertise? Add-ons such as Grasshopper, ParaCloud or ICE are leaning towards providing the end-user the ability to create or customize their parent-applications. What's aligned for SketchUp?
Indeed, my hope is some day Google SketchUp will bring-back journaling, or enhance the Ruby-coding experience in a visual way, much like LISP Generator did for AutoLISP or like Dreamweaver or FrontPage did for HTML.
Please kindly let me know what you think.
Cheers,
- Diego -
-
Well, boss, you know where I stand on this. I've posted links to Grasshopper before...perhaps you have some favorite examples (Youtubes or screenshots) to show what we're talking about.
It was just brought to may attention by one of my former students that this project for the Eiffel Tower (which is controversial, because the designers let it be mistaken for a real project, and only later reluctantly admitted this was theoretical...and a publicity stunt) was created using the sort of modifiable tool Diego is describing.
Let's add another category of software to Diego's list: music, video, and performance art applications, such as
VVVV (freeware, mainly for video manipulation)
Max/MSP/Jitter (originally for music "sound design", with added video capabilities)
pd~ (open source music/video "multimedia performance" software from the same developer as MAX; graphics capabilities added with gem)And don't forget Lily, which is a free progamming tool that allows you to create plugins that run within Firefox.
Anyone up for helping me create a noded visual progamming language interface in Ruby for SketchUp?
(Diego isreally my boss, incidentally.)
-
something like SME ?
-
@unknownuser said:
something like SME ?
Hi TBD,
possibly something like it, can't really tell from what's there; maybe if you send me a link to a download?Thanks!
Cheers,
- Diego -
-
SME was a test on having an interface for writing Ruby scripts without knowing how to program (you can play with the limited demo). it creates a simple ruby script after you click on script (upper right)
it was created before SU6 and WebDialogs as a testcase for my Suriko project (WebDialogs daddy in SU5 ), so it can be extended now and have a realtime tool, with instant feedback. it can be turned in something similar to Grasshoper, but it needs some work
-
@unknownuser said:
SME was a test on having an interface for writing Ruby scripts without knowing how to program (you can play with the limited demo). it creates a simple ruby script after you click on script (upper right)
it was created before SU6 and WebDialogs as a testcase for my Suriko project (WebDialogs daddy in SU5 ), so it can be extended now and have a realtime tool, with instant feedback. it can be turned in something similar to Grasshoper, but it needs some work
Sounds good, but if you take it up again don't forget the visualization and dataflow components. Let me know if I can help...the interesting thing about Grasshopper (which I've used more than any of these others) is that it opens up a separate interface, outside of the Rhino application, with a pretty robust set of independent GUI rules, but the changes in the visual script immediately manifest themselves (in a sort of preview mode) in the main Rhino window.
-
Virtools (now called 3dvia Virtools) by Dassault Systemes is a 3d physics/game engine and it also has this visual interface. It took me a while to learn and certain aspects were quite difficult, but in the end it was certainly much easier than learning the coding language used by that program.
And I'm also a big terragen fan (though I haven't used it much recently). I think that making a visual ruby programming application for SketchUp would be a very interesting development indeed!
Good luck to whoever takes this on
Chris
-
I think it would be very important and quite in keeping with the whole original sentiment of SketchUp: "3D for everyone."
"Programming for everyone."
It would have to be more than just Ruby (I think that might be too slow) to make this...well beyond my current programming skill set and my limited Java and Python. But once my current project finishes up at the end of the month, I don't seem to have anything to do besides worry about my personal economic status...perhaps this would be a good time to learn a new skill.
-
I don't think that is quite what we're talking about, TBD, although it is close to the hidden recorder that was in SU1. And a great idea, too, I should add.
But this is the sort of visual programming we have in mind: Rhino's (still-beta) Grasshopper. It's not a macro recorder--it's an object-oriented programming language with a visual interface that immediately indicates connections and flow path between data objects and methods.
Here's the interface for PD.
The idea (at least for me) is to not have to deal with the non-natural grammatic patterns of a textual computer language. Since human beings are primarily visual and haptic creatures, a scripting/programming language that permits immediate visual feedback would be the most natural language of them all (in theory). In this sort of environment, you move your data/method nodes arround, pull out connectors to tie objects together (indicating data flow), and then run to see output (some variants, like VVVV and PD are live...output happens as the nodes are assembled, which is why DJs and VJs are so fond of them as performance art tools).
This visual evolution in programming should be considered equivalent to the visual evolution in operating systems from primitive versions such as DOS to windowized modern ones. It could also be criticized in the same way...but did we really become dumber once we went from DOS to Macintosh OS?
-
Arg Grasshopper needs Rhino SR3...
Have you been using this a bit Lewis? I'm very intrigued.
P.S. Does anyone know of any decent Rhino forums?
-
@-rb- said:
Arg Grasshopper needs Rhino SR3...
Have you been using this a bit Lewis? I'm very intrigued.
I used the previous beta, which was originally titled "Explicit History." It was great but missing some fundamentals (like instances for objects). Since the update I've been caught up with a more conventional modeling project, but that will be due in 9 days and I'll have the time to play around with software for a bit. Diego has assured me that many of the limitations in the earlier beta are being dealt with.
Here are some nice tutorials on Grasshopper. This site also contains some interesting work. Also, do a search on Youtube and you can see some screen recordings of it in action, affecting Rhino models. Finally, the main Grasshopper site includes a nascent but enthusiastic forum (Google Group).
If you're really interested in visual programming, however, there are plenty of open source or otherwise free applications--see Diego's and my posts at the top of this thread.. PD, noted above, is FOSS, quite mature and well documented (if not particularly pretty). Blender has a shader developer that is very intriguing (and free). I have used that, and it's a wonder, but of course you have to get past the Blender interface to model something to use it on. Lily is FOSS as well, and looks interesting (I found it through Wikipedia's entry on Visual Programming).
-
Wow, Designreform looks great - thanks!
Haha can't handle the Blender UI so will stick to Grasshopper for the moment. Oddly enough the UI in Grasshopper looks alot like some of my peers live DJ 'chain of effects' tools. I wonder if they operate in similar ways.
-
@-rb- said:
Wow, Designreform looks great - thanks!
Haha can't handle the Blender UI so will stick to Grasshopper for the moment. Oddly enough the UI in Grasshopper looks alot like some of my peers live DJ 'chain of effects' tools. I wonder if they operate in similar ways.
VVVV (freeware) and PD (open source) are both used by VJ's and DJ's, although PD's older brother Max is more common among musical types. And it has been around for ages...look at the Wikipedia site to see who has been using it. It was looking up Radiohead's tools, oddly enough, that introduced me to this programming concept, well before I discovered shader makers or Explicit History.
By the way, if you are reading this and have a Mac, you have a VJ-ready visual programming application already: Quartz Composer. It comes with your OS.
-
Thanks again, I am currently looking at VJ stuff also so will have to have a good flick through the links. Was looking at (is it the MIT based?) Programming language for a bit but as is always the case there ain't enough time in the world. BTW the new Nine Inch Nails live show looks pretty spectacular, if you haven't YouTubed already.
Does anyone know which generative software bands such as Autechre use? Shot in the dark but hey, this forum looks to have a pretty broad knowledge base.
-
Thanks again!
Do you know what Eno is using too?
-
Wow Max/MSP/Jitter look fantastic can't wait to try 'em out.
-
@-rb- said:
Thanks again!
Do you know what Eno is using too?
Well, he was involved with a program called Koan, which is apparently obsolete. I just looked it up, and there seems to be a successor program. However, I just scanned the site, and it's based on textual scripting. I don't know if Eno uses this.
I'm not so much interested in "generative" design as I am in that Visual Programming idiom, although of course Visual Programming can be used to create generative design (and apparently often is).
-
@-rb- said:
Thanks again, I am currently looking at VJ stuff also so will have to have a good flick through the links. Was looking at (is it the MIT based?) Programming language for a bit but as is always the case there ain't enough time in the world. BTW the new Nine Inch Nails live show looks pretty spectacular, if you haven't YouTubed already.
Does anyone know which generative software bands such as Autechre use? Shot in the dark but hey, this forum looks to have a pretty broad knowledge base.
Autechre uses Max much of the time, or rather they use Max to design their own sound applications. There is a screenshot of one of their "patches" (that is the term in Visual Programming for a script or program) on the Wikipedia entry for Max that I listed above, and I've linked to it below.
Incidentally, I've been led to understand this video for Autechre was produced with one of the Visual Programming applications...Max, PD, or VVVV would have been capable of it. I should write the designer and find out, I suppose.
If you mean Processing Language from MIT...that's great, but it is in fact a customized version of Java designed for artists and not a true Visual Programming Language. It is a textual computer language, like Java and using Java syntax with some graphic command additions. I've met the two principal developers...they are very devoted to computer applications for the arts.
I will check out the NIN live show stuff...I've enjoyed the recent albums.
-
I was just noticing that Max 5 has finally come out...it looks like you could use the Jitter component for animation and rendering for 3D models...30-day trial...
Of course, you could also do this with VVVV, which is free for non-commercial use.
-
I downloaded the Rhino SR3 pack last night and am running Grasshoper now. Very exciting to experiment using VAD - it just seems so logically set out too. Genuis.
Sorry to veer off topic slightly with generative design but it has been floating my boat as of late.
Advertisement