Category: AHO

This landscape of randomized cube-like structures proved popular with the students in the AHO workshop:

Code: randCube.rvb

Read the rest of this entry »

1 Comment »

Danzer tiling

MIT IAP RhinoScript workshop - Danzer Variations

While looking for RhinoScript resources for the Digital Architecture workshop at AHO I found a recent posting of the final projects from a RhinoScript workshop at MIT IAP. It features some very nice-looking work, including the Danzer tile forms shown above. It also provides the source code for most of the experiments, well worth checking out.

The resource page for a previous MIT workshop is still up, it has more scripts and some useful links: Computational Design Solutions Part 1.

No Comments »

I am teaching a 3-day workshop in Digital Architecture at the Oslo School of Architecture & Design (AHO) this week, as part of a course by Søren Sørensen. The workshop will give an introduction to Processing, with a focus on synthesis of spatial form. If time permits we’ll also look briefly at Rhinoscript.

Be sure to look at the page I have prepared with links related to computational architecture. Code will be uploaded to:
http://workshop.evolutionzone.com/workshops/080211_aho.

Workshop contents
  • Basic Processing syntax
  • Simple animation
  • Control structures: If / else, loops, keyPressed(), mousePressed()
  • Transformations: translate(), scale(), rotate()
  • Complex drawing: beginShape(), endShape()
  • Data structures: Arrays, classes
  • Polygon mesh generation
  • Output: PDF, STL, DXF
Possible advanced topics

No Comments »

080205_rhinoscript.jpg

Rhinoscript sketch, extruding a revolution surface along random curves. Good cheesy fun.

I had a chance to see a bit more of the impressive tool Rhino 4 during the Generator.x 2.0 workshop, and so I thought I’d have a go at making a simple sketch in Rhinoscript. As it turns out, the fact that Rhinoscript is based on VBScript makes coding feel horrible at first. Seriously, who would want to use syntax like that? It might be easy for beginners to pick up, but it quickly gets painful once you’re dealing with complex API calls and 100+ lines of code.

Nevertheless, frustration soon gives way to amazement at the built-in Rhino library and its vast array of heavy-duty functions for creating and manipulating curves, meshes and NURBS surfaces. In comparison, mesh generation in Processing is enough to give anyone a headache, and I seriously doubt anyone would even attempt to implement NURBS. Even Boolean mesh operations is a staggering task, with no good Java libraries readily available.

While Rhinoscript is firmly a non-realtime tool, its power for pure geometry is amazing. I would definitely use Rhino as a creative tool for digital fabrication projects, where animation is not the goal. There are some excellent RhinoScript resources online, for starters look at RhinoScript 101 and David Rutten’s tutorial. I would also definitely recommend using the Monkey Script editor instead of the built-in editor, it’s more powerful and has a very useful documentation feature.

The script below gives a basic idea of the Rhino syntax, and while it is a basic sketch suffering from 3D clichées, it shows the power and versatility of Rhinoscript. I just wish it wasn’t Visual Basic.

Code: RandRail.rvb

Read the rest of this entry »

6 Comments »

The AHO students needed a simple file uploader that would automatically transfer files from a local folder to a web server. The following application will simply watch a given folder and upload any files it contains to the FTP server. Note that it will delete the local copy upon successful upload, so be careful how you use it.

Code: FTPUploader.pde

The code for the application is given below, but downloading the following ZIP will give you the required edtFTPj library files as well as a sample config file:

Read the rest of this entry »

1 Comment »

Quick Chick: A game made in Processing

Fan Fan, Knut Karlsen, Natacha Ruivo: Quick Chick - a Processing game

Over on Fan Fan’s blog I just found documentation of one of the funniest games the students made: “Quick Chick” starring Billy the Chick who must dodge poisonous falling apples and thorny flowers while making his way home before dark.

Quick Chick is a classic scrolling-landscape type game with obstacle avoidance and good gameplay. Graphically it’s so smooth you’d swear it was done in Flash (it’s JAVA2D). And the graphics are some of the cutest I’ve ever seen in a Processing sketch.

Quick Chick: A game made in Processing

3 Comments »

It’s been a busy few weeks. In the 4 weeks since mid-October I’ve done three Processing workshops, two of which were 5-day workshops. From Porto and Stuttgart to Venice and finally Brussels and the Cimatics festival, it’s been a long and interesting where I’ve been fortunate to meet many new people. but I’m also feeling the wear and tear of too many airports and too little time spent sitting making things.

So right now it feels good to come “home” to Oslo for two weeks of teaching and hanging out. I look forward to seeing the Interaction Design group at AHO again. Last time was the presentation of their excellent Processing games, which honestly impressed me. They had really come far in just five weeks. This time the mission is to make a social installation, so it’ll be interesting to see how they approach it.

The lack of activity on the AHO Interaction Design Flickr group would indicate that the students still don’t quite get what Flickr can do for them. Oh well. The consolation prize is that their blogs are starting to look more like real tools than simple assignments made to please the teacher. While surfing their blogs I found the nice RP object above, I’m hoping for more such gems in the future.

Here’s the blogroll for the class, have a look if you have a minute or two. Some are quite basic, but most show real potential to at least become good project blogs. I’m planning to do a little inspirational lecture about blogging while I’m here, maybe that’ll push things along.

2 Comments »

ZZap! 64 Magazine covers

ZZap! 64: Magazine covers

It’s maybe too close to the deadline of the computer game assignment to give much additional inspiration, but I found an interesting link to an online archive of ZZap! 64. A magazine devoted to Commodore computer games with an obvious focus on the C64, it’s now a treasure trove of retro computer game culture. In particular, the magazine covers are a sight to behold.

Another site I only found after giving the assignment is Dot Eaters, an excellent overview of classic video game history.

[ZZap! 64 link via the excellent 30gms.]

1 Comment »

A little history
Since the first very computers, there have always been computer games. Games are in many ways the ultimate icons of computer culture. The computer excels at the kind of interactive simulation that games require, giving the user immediate response to her actions.

Early computer games tended to be iconic in their representations. Restricted by limited CPUs and low quality graphics, their worlds were often comprised of the most basic shapes: Lines, squares and dots. As a result, the focus was purely on gameplay: How do the elements interact, and what makes for an interesting game?

Examples of classic games are Tetris, Snake, Space Invaders, Spacewar and Pong. These are all visually primitive, but remain among the most addictive games around. They are quick to engage with and learn the principles of, but typically feature scaleable difficulty that means that even experienced players will find a challenge.

Later, pixel sprite games became popular, giving more potential for representation. The platform game model became more common. The focus was still on basic gameplay, but the visual environment became richer and there was more of a sense of a landscape in the games. Examples from this era include Dig Dug, Forbidden Forest, Gauntlet, Donkey Kong and Lode Runner.

Increasing computing power produced new genres of games, from advanced platform games (Prince of Persia) to new models like god games (Sim City, Populous etc.) Today, games are practically unlimited in their graphic complexity, and often tend to have strong narratives and advanced spatial environments. Meanwhile, 2D games are having a renaissance on mobile terminals.

Why you’re going to make a computer game
Computer games are perfect examples of interaction design. Games are interactive applications that potentially demonstrate a range of interesting qualities: Visual sophistication, advanced interaction and psychological aspects of experience design. A good game is usually immediately recognizable as such,

Games also present a complete model of a functional application. They take user input, process it against an internal model and output a visual (or multisensory) result in response. You’ll be able to use everything you’ve learned so far and put it to good use in an interactive situation.

A good game consist of several elements:

  • A game model: What does the game challenge consist in, and how can the user win?
  • Gameplay: What does the user control, and how does that control influence the game?
  • Visual elements: What is the environment the game takes place in? Is the “world” constant, or does it develop over time?
  • Scaleable difficulty: How does the game get more challenging as the user plays it?
  • Addictive aspect: What will make the user come back for more?

Process

  1. Find a group you want to work with. You should be two or three people per group.
  2. Do some research on games. Look up some of the games mentioned in this introduction and see how they worked. Try to understand what makes them into classics.
  3. Come up with a concept sketch. Describe the game idea on paper, explaining what the components are and how they will interact.
  4. Do initial code sketches, not focusing too much on details but showing the basics of interaction.
  5. Present these ideas to Marius and Mosse in individual talks on the morning of Friday 28.09.
  6. By Wednesday 03.10 you should have a basic prototype ready. Marius will be available all the days Wednesday to Friday, but you will be working individually and there will be no proper teaching.
  7. Final presentation is Friday 05.10 at 13:00. You should have sent the assignments to Marius on email before then.

2 Comments »

To make sure I get your assignments in a way that I can run without problems, you need to follow the following guidelines when delivering an assignment:

  • First give your sketch an appropriate name from inside Processing. The name should contain the code of the assignment and your full name. An example would be “EX03_MariusWatz”.
  • Make sure all external data files (images, .vlw fonts etc.) are in the sketch, and that you can run it normally.
  • If you use a non-standard library (i.e. Minim etc.), please include a copy of the library in your sketch folder.
  • Use the “Show sketch folder” menu selection to find the sketch folder in your operating system. Use a ZIP or RAR archive application (WinRAR, Stuffit or similar) to make an archive of your sketch folder,
    giving the archive the same name as your sketch (i.e. “EX03_MariusWatz.zip”).
  • Email it to me at marius at unlekker net.

You should always post at least a few screenshots of the assignment on Flickr.

No Comments »