The Adventures of Joshua Judson Rosen
(action man)

[ sections: VisualIDs | art | movies | everything ]

<<  Page 5 of 8  >>

Tue, 23 Jun 2009
[@]

02:17: An Exercise in Applied Mathematics and Primitive Art

One of the things that really struck me about VisualIDs was something that wasn't even discussed in the original essay--something that even seemed to be conspicuously missing after actually working with VisualIDs for even a brief period: there is ever-so-subtle a mention of the `radial' generator, for example, as having `children that could be interpreted as eyes and a mouth', but there was no mention of just how supportive of that `possibility' the visual details end up being--how cleverly (how artfully) they play on the human tendency to see familiar meanings in familiar forms, even when there's really nothing there.

Not only do we see `eyes' and a `mouth' inside a Radial glyph invented by the machine, but the `angle-limited edge-children' (using the terms of the shape-language) even appear as `a hairdo' and, when applied recursively in drawing the inner sub-glyphs, Radial's the edge-glyphs often appear to give the `eyes' eyelashes and to give teeth or a `mustache' to a mouth.

When Radial and Line combine to form Figure, they resultant glyphs are strongly suggestive of `animals' and `people'.

These were, I think, the first generators that I implemented, and there was quite a punch to it when it started working and, out of nowhere, the machine drew what I could have sworn was a turtle.

It's been really interesting to see what sorts of things are suggested by different Radial/Figure productions: some of the icons in my screenshots, I just can't resist calling things like "ninja", "lion", "turtle", "urchin", "tic-tac-toesoldier", "warrior", "spider"....

I do wonder what other people would call them. What I've encountered thus far is that, where I see Shapes as `amoebas', my wife sees them as `thought-bubbles'; a friend of mine remarked that `shaving.htm looks hairy', and my wife referenced one file as "the guy with the spiky hair".

These glyphs, which are formed by pseudo-randomly applying the shape-grammar, really and honestly don't have any inbuilt meaning, but it seems that they're so readily assigned meaning that we just can't help it (in the same way that it's nearly impossible to avoid the reading of words, seeing sculptures and canals on Mars, and becoming fraught with cognitive dissonance when we try to cite the colour of the next word: "green"), and that's just... fantastic.

Accompanying the original essay were also some stylisation options--merely alluded-to by way of example-imagery rather than being outright specified, the list of ideas included glyphs drawn purely with stark black-on-white lines, glyphs that had been colourised and embossed, and glyphs framed by a couple of different types of auxiliary `aqua blob' elements.

I have some ideas for how to implement some of the fancier styles, and even some stylistic ideas of my own (Cairo offers some interesting tools like transparency, gradients, clipping, and various options for stroking a path; coordinate-system transformations also apply when stroking a path--I've actually already had some success using that to render `calligraphically'), but I'm really not all that sure of their value: as neat as the `embossing' idea is, I think that I can appreciate it much more from a graphics-geek perspective than I can from an artistic one.

As an artist, I find the whole `vaguely-familiar line-drawing' thing to have excellent perceptual characteristics: it's just so easy for us to relate to it--on an even primal level. It's like... an evolution of cave-paintings. Cave-paintings for the digital age? Indeed. Meta-primitive art.

As such, the direction in which I'd like to move, as far as glyph-types goes, is toward additional impressionistic or primitive-art-style images mimicking a broader array of fanciful real-world object-types. My wife, for example, asked me:

"Can you make one that generates butterflies?"

In fact, under certain circumstances, certain generators do coalesce to produce semblances of `butterflies'..., but it would be nice to be able to tune the system such that `butterflies' could be a distinct feature rather than a rare and happy co-incidence. The definition of a specific `butterfly character' in the shape-grammar would also open-up some additional possibilities for obvious parameters: not adding too much detail (or, perhaps, too many details), because we want to preserve the `primitive art' aspects, but butterfly-wings do have certain universal tendencies that may not be properly captured solely by the use of a generalised system of polar-coordinate renderings of Fourier-series curves.

I can immediately imagine extending the visual language to include faces (Radial); people and animals (Figure); butterflies, dragonflies, and faeries; flowers and trees; snowflakes; etc. These should all be fairly straight-forward, since they can all be broken down into coarse geometric or trigonometric primitives with relative ease, and they seem like they should all be fairly successful with many audiences.

Myself, I do sort-of like a lot of the Spirals, and I wonder if part of their appeal is perhaps that they are, basically, sort-of vaguely-similar to flowers..., or maybe the appeal of spirals is just part my own idiopathy. These sorts of things can presumably be sorted-out empirically with sufficient number of testers.

Even forgoing the fancier render-styles for straight-up primitive-style line-drawing generators, I am somewhat interested in expanding the algorithms to include colour (including fills, background-vs.-foreground contrast...), and the addition of a Butterfly generator provide a perfect canvas for that. I do think, however, that one must be careful there: one should take care to avoid `colour' being the only distinguishing characteristics of things. I'm particularly sensitive to this because (is this evident from the graphics on my site?) I have colour-aberrant vision, myself (weak' red, shifted over toward green a little..., so I do not have anything like \the normal relationship' with the colour-spectrum; and if you've only ever experienced normal colour vision, it's almost certainly not what you'd expect it to be like); luckily, I found a couple of very good guides to colour vision and colour design, written from a UI-design/usability perspective:

Ultimately, it's almost certainly desirable to come up with ways of making the generated VisualID icons basically `fit in' with the rest of the user's desktop-theme, but that seems like a more bigger and more difficult task right now. Of course, I'd be glad to lend an ear to anyone else who's interested in pursuing that goal.

[Reply]


Wed, 13 May 2009
[@]

23:52: Finding Levenshtein Edit-Sequences

Here's the trick: if you want to find the Levenshtein edit-sequence that leads from one string to another (or, you think, you just want to know which operation occurs at which position in either string), create the complete cost-table, then start at the terminal position and walk backward to the beginning.

It's impossible to walk forward from the beginning, because there's too much ambiguity as to which direction the next `step' should take through the maze, but it's actually easy to walk backward: one merely needs to find the direction that either preserves the cost or decrements it by one, with preference given first to cost-decrement and then to diagonal movement (because diagonal cost-preservation is a `keep' operation, and diagonal cost-decrement is a `substitute' operation; horizontal and vertical movement are either insertion or deletion, depending on which string is the source and which is the destination).

[Reply]

[@]

23:01: Best Wedding-Gifts

Jay says:

We tend to avoid ritzy dining.
She's not that big on eating out, in fact.
meat and potatoes is the usual fare.
Fine with me.

I guess that makes it all the more meaningful that they took us out for a nice dinner as a wedding-gift.

I think our favourite wedding-gifts, by far, were the food gifts. They were like, "Here is a combination of a manifest something-that-you-do-not-have-to-do and a new experience", both of which are such precious things; and the fact that they're usually at odds with each other makes their combined delivery just totally fantastic. Fantastic.

[Reply]


Mon, 13 Apr 2009
[@]

23:50: GPRS GPS is frickin' expensive

I drove to work, today, with TangoGPS running on my FreeRunner, merrily downloading OpenStreetMap data as I went... and there's a conspicuous hole in my map where the GPRS link effectively went dead (and Pidgin started saying "authentication error: connection refused")..., because the balance on my prepaid SIM went to zero.

I had $20 on it, when I started. At 1¢/kilobyte, that'd be... how much data did I download?

root@om-gta02 ~ $ cd Maps/
root@om-gta02 ~/Maps $ du -hs
1.9M .

"How many kilobytes is two megabytes?", asks my brother. "Two thousand", I say. So, at 1¢/kilobyte, that'd be....

I open my mouth to say "two-thousand cents"; but my brother interjects, "twenty dollars".

OK. I guess it's worth buying an unlimited-data plan, if I actually plan to use this `download as I go' feature.

[Reply]


Sun, 12 Apr 2009
[@]

21:33: sloccount

sloccount libvisualid-dev reports:

Totals grouped by language (dominant language first):
sh: 9198 (78.84%)
ansic: 2471 (21.16%)

Total Physical Source Lines of Code (SLOC) = 11,669
Development Effort Estimate, Person-Years (Person-Months) = 2.64 (31.67)
(Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05))
Schedule Estimate, Years (Months) = 0.77 (9.29)
(Basic COCOMO model, Months = 2.5 * (person-months**0.38))
Estimated Average Number of Developers (Effort/Schedule) = 3.41
Total Estimated Cost to Develop = $ 356,473 (average salary = $56,286/year, overhead = 2.40).

(generated using David A. Wheeler's 'SLOCCount')

All of the shell-script code is generated by the GNU Autotools, so using Automake, Autoconf, and Libtool apparently cut my development-costs by 4.3 months and 2.17 developers (bringing the price down to a much-more-reasonable $69,849).

So, use the Autotools--they could save you more than a quarter-million dollars.

Also, if you're unemployed for three months, pretend that you were making less money before you lost your job--I know it makes it hurt less for me to pretend that I only lost $14k....

Actually, that $14k did buy me some cool software.

[Reply]

<<  Page 5 of 8  >>