Xirja Design Portfolio

Welcome to Xirja Design's online portfolio of design tools. We build custom software that moves the qualitative and quantitative boundaries to new extremes and reveal a beauty in numbers that one has to see to believe. While Mathematica, Filter Forge, and Grasshopper are the tools used to build the tools we use, and the categories highlighted, the focus here will be on the end product. The designs are showcased as a visual reminder of what Xirja Design knows and how that may be helpful to your design firm.

Behind the scenes Mathematica video. Best to enable CC on the menu bar for closed caption commentary.

With Filter Forge, Mathematica, and Grasshopper there are strengths and weaknesses to each, that together make a complete computational design package. Below is a grid that attempts to distill the important factors of each application.

Price  $   $$$   $$1 
Systems  oo   ooo   o 
Coding  (a, b)2   c   (d, e, f)3 
Component (Node) Based  +   -   + 
Sample Based + - -
Export Formats  &4   &&&   &&5 
Vector Export  -   +   + 
3D CAD Tools - - +

1- Rhinocerous is required to run the free (beta) version of the Grasshopper plugin. 2- Lua components tailored specifically for Filter Forge. 3- VB, C#, and Python components. 4- Basic set of raster formats (PNG, JPG, etc.) 5- Wide set of raster and vector (including ACIS) formats

Ahhh, Filter Forge. Well its a bit like reverse engineering at first. There is no go to manual at this point and the help files are a bit vague, so one has to go to the forum to search for a specific topic or deconstruct filters from the user library. A good idea is to get comfortable with the components and what they can do, and then go through the thousands of filters and try and separate the good from the not so good to get a better idea of how to create what is sought. Then of course the most fun is filling in the blanks, meaning there are certain things that others haven't done yet. This untapped empty space has been amplified with the release of version 2 and its Lua scripting component. Now all the fancy density plots that I was doing in Mathematica can be done in less time with Filter Forge:
Mod1 ( 29 controls 146 components )
Mod3 ( 34 controls 65 components )

I am coming to realize that a critical part of filter construction is the minimization of the number of controls.  Because the user interface isn't as flexible and customizable as one built with Mathematica, having one row of 30 controls with limited name space is like having to reverse engineer your own creation every time you are away for more than a week.  Talk about a high maintenance relationship.  After being estranged for a short while, I'm thinking, 'who is she and what was she doing?'.  So I open her up, and there is all her hair, but what's going on in there?  Well, I had to build a database for all the filters I built with 'purpose' and 'attributes' fields so as to make more sense of things and keep a grip.  All them wires does get a bit hairy!  Here's to macro packing and a flexible GUI in the future. :) Another benefit of having a limited number of controls is the randomize feature.  If you build a filter with this in mind, you'll be so happy that you can just press one button all day long and you wont have to remember a thing about what's in there. Aside from saying that Filter Forge is a monster of a DIY filter kit, with excellent bump mapping, anti-aliasing, and  lighting, what more can be said?  Ah yes, 0(black) = -1(left), .5(grey) = 0(center) and 1(white) = 1(right), with respect to the all important Offset component (in non-HDR mode).
Image Distort C2 ( 32 controls 263 components )

So, I looked at the actual numbers for 'the' manual, and I slightly over estimated. Here is the breakdown for the three most helpful books, in my opinion, so all together it amounts to roughly 3300 pages of pure reading joy:

The MATHEMATICA Book, Version 4 by Stephen Wolfram 1340 pp.

The Mathematica Guidebook: Graphics by Michael Trott 1496 pp.

Mathematica 4.0 Standard Add-On Packages by Wolfram Research Inc. Staff 524 pp.

Anyhow, I can't help but wear these numbers like a proud badge, sorry, I need to get this off my chest first, so that now I can calmly reflect on the fruits of this hard won labor. Ahhh, the flowers...

In the beginning, there was a simple interface, that I built...

...but in fact it wasn't the beginning, because it was only after much anguish, trial and error, and many early mornings, that I was able to simply have this, but stick with me here, for the sake of harmony...

...and it accepted text documents as input...

...which made life a joy, as Player Pro is 1/10 the price of the standard package and has no machine license! Behold the beauty of modulo math, and density plots. The export formats, the clarity, the potential for animation...

...and there were lines and points too...

...and some were splines with boundary shading and some were hollow and narrowed!...

... and a rare breed even escaped into the 3rd dimension and bore fruit...

a discus magicale from a lovely creature

...ever more fantastic creatures were found in this realm that also gave forth fruit...

a spectacular platter

a wonder ball

a bird's caged bird

...and to top it all off, one needn't sit for hours laboriously going through all the tedious settings...

But if you prefer, we can go on at length about the nuances of DynamicUpdate->Enabled or Module[]*

TBC, maybe

*Friday night dreamer not dreaming anymore, thinking he should have stuck to the facts. Oh the repercussions.


Oh, well, reverse chronology is something.  So I suppose I'll start by summarizing my journey into mathematical design concepts by sharing a couple images: 

The first image is the most recent journey into Lua programming in Filter Forge, and the second a keychain that has a parametric 'origins' design.  Both representing the near infinite possibilities there are in mathematics with respect to design.  The Julia fractal 'seahorse', or dragon as some may see it, is truly an infinite object unto itself.  Self similarity places certain bounds on what can bee seen as you zoom into it, but it is nonetheless amazing that a simple iteration: x->(x^2-y^2)+c, y->2xy+c can yield such interesting results.  Much as it was in 1993 when I started toying with parametric equations using XFuctions to see if I could improve my understanding of calculus.  It started as an exploration of relationships of frequencies or waves, and I began to see the potential for simple and beautiful objects building as the years progressed.  Then spreadsheets became the most flexible and affordable way for me to manipulate all the numeric parameters.  Subsequently a program called Graphing Calculator, that used to be included in the Mac OS for free, was also very helpful in visualizing and understanding functions and relationships.  Finally this year I decided to go back to all the 'origins' parametric designs from 10+ years prior that were made using Excel and create high quality updated versions on pendants using Mathematica.

In 1998 I decided to dive into creating a web page, and in 2002 the first textile design catalog was born.  The material was created using the best parametric 'spirographic' images from Excel as source for Photoshop manipulation using Xaos Tools' Terrazzo tiling plugin.  It was nice to see how composited blur and effects on layers could be so stylish.  I truly felt as though I was in some quaint Italian village in renaissance times.     

The real breakout however was with the Mathematica programming package.  Now, in theory, there were very few constraints on the possibilities, but getting through the 1600 page programming guidebook was another matter entirely.  From 2005 to 2007 I got my feet wet, but from then on I wear permanent breathing apparatus.  Being the first of the three programming packages I highlight here in this design showcase, I'll start with these four images as exemplars of what Mathematica is all about:

1) A custom point plot with variable size as it relates to the radius, 2) a radius varying nested parametric spline curve, 3) a modulo density plot (also see the 2008 textile design catalog for other density plots), and 4) a 3D parametric spline with variable tube thickness are all made using Mathematica with re-coloring in Photoshop or rendering in Lightwave.  Not only are all the parameters finely tunable, but the many file output types can be rasters of any size, or vectors (pdf/eps) which are of course highly precise (the file output type was lwo for the 3D image).  I have built from scratch a system using Mathematica to make the objects shown above and there is additional control over randomization of parameters (for finding new interesting settings) and gif animation export as can be seen here:

After being pleased with the tiling and repeat outcome of the 2002 textile design catalog, I was looking forward to trying this process again but this time with the density plots.  The problem was that the software industry had gone through a bit of a transformation regarding the Mac OS world, and so the Terrazzo plugin I was using wasn't going to help.  There was another helpful plugin that used to come bundled with Photoshop called Filter Factory that let one build custom filters, but again it was of no use in the new Intel OSX world (Of course there are some very helpful people behind SheepShaver that saves those of us who insist on OS9-), and thus Filter Forge popped onto my radar as I was looking for an alternative to build custom filters for tiling, etc.

Three years of Filter Forge and I can honestly say that I now have to have a breathing apparatus for my breathing apparatus.  Trying to keep this program straight is next to impossible, as again the options are limited only by ones lack of imagination and comprehension.  Now that version 2 has a custom scripting option, it is something whereby the density plots can be done better in Filter Forge rather than Mathematica in some respects.  The following illustrates what could be done PRIOR to this (examples of  version 2, aside from what is at the top of this page, will soon be in the showcase):


I couldn't do anything but start this blog to try and crystalize all that I have built using this program.  Many custom built plugins and each having many unique settings and presets is enough to make me wonder why I didn't become a botanical taxonomist, as it most certainly would have been simpler!

To add fuel to an already raging fire, enter Grasshopper.  I recently started using this program , and I'm quickly seeing how this too can do things better in some ways.  An example of  3D Grasshopper objects rendered in Lightwave:


I'll say more about this program in a later section, and as I grow more familiar with it. 

So, in conclusion, or introduction, whichever comes first, if you like coding go with Mathematica; if you like plugs and wires go with Filter Forge and/or Grasshopper; but if you find both revolting and impossible to grasp go with Xirja Design!*

More in depth to follow...

*The author has stepped out for lunch and an amateur copyrighting salesman has taken his place, and as such the author takes no responsibility whatsoever for the preceding concluding sentence!




I am starting to get the hang of this.  I've got all the categories arranged on the menu, a good table of updates in a text box, and now I guess it's time to get into the writing mode.  So where to begin?  If pictures are more than capable of taking the place of words, then possibly I should just tend to the design creation, but then why have a page on WordPress without words?  My thoughts exactly, and perhaps a bit of history and techno-jargon will be welcomed to put all the designs into context.  Ok, so here we go.