It turns out that my system using Mac OS X 10.9 doesn't much like old versions of iTunes - the ones with iTunes DJ - and as a result the means of updating Apple's stuff, the awful App Store, doesn't even work on third party software I want updated. Oh well, I'll replace some files and that'll be that.
It turns out that Nightingale plays my library in the way that iTunes used to before Apple's management downgraded it, although what's required is an add-on for it called Party Ruffle. Nightingale scoops up my iTunes library pretty handily and it works fine.
Goodbye iTunes.
Showing posts with label Computer Stuff. Show all posts
Showing posts with label Computer Stuff. Show all posts
Monday, November 4, 2013
Wednesday, October 2, 2013
Head Shot
In the course of wondering why my skull had somehow been rendered so weirdly it occurred to me to actually pay attention to the error messages Osirix was giving me:


Thickness, it turns out, is not a sober assessment of the basic problem of your humble narrator, but rather a measure of the slice thickness or interval (one of those) of a part of the CT scan. And it turns out that slice thickness carries through to about the midpoint of an 88 slice series and then changes to a second value, meaning it might be possible to render the two sets of slices without much fiddling and make them into a better facsimile of the most-naked me ever.
Yet somehow the two halves added together in MeshLab seemed to produce a horrifying dome of the type sported by various super-villains and some old-style Cylons.

Silly me: of course I should have understood that I really AM that horrifying. The slices aren't on an eye-fooling XY axis as suggested by the stripes but rather are diagonal in order to better view those sparse chunks of brain without irradiating unnecessary and equally unattractive chunks of me.

3D print cost estimate in the works.


Thickness, it turns out, is not a sober assessment of the basic problem of your humble narrator, but rather a measure of the slice thickness or interval (one of those) of a part of the CT scan. And it turns out that slice thickness carries through to about the midpoint of an 88 slice series and then changes to a second value, meaning it might be possible to render the two sets of slices without much fiddling and make them into a better facsimile of the most-naked me ever.
Yet somehow the two halves added together in MeshLab seemed to produce a horrifying dome of the type sported by various super-villains and some old-style Cylons.

Silly me: of course I should have understood that I really AM that horrifying. The slices aren't on an eye-fooling XY axis as suggested by the stripes but rather are diagonal in order to better view those sparse chunks of brain without irradiating unnecessary and equally unattractive chunks of me.

3D print cost estimate in the works.
Labels:
Cheap Animation,
Computer Stuff
Sunday, September 15, 2013
Expressway to Your My Skull

Thanks to Osirix I can get a tissue layer and a bone layer out of my CT scans. Those can be exported as 3D images into MeshLab, where I can do a little cleanup. Sadly I then need to get usable DAE files from SketchUp, but oh well. The DAE files can then, of course, head into Quartz Composer where anything can happen.
And as it happens, the workplace has 3D printers and a free SolidWorks for me. What can I use this for? Coffee mug? Planter?
Labels:
Cheap Animation,
Computer Stuff
Saturday, September 7, 2013
Routine Head?
SPUTTER.

Okay okay, I've been lazy here, but I've been busy elsewhere, the above being part of the action. There's no emergency or crisis or anything, just poking around in there.
Thanks to the wonders of the Canadian medical system I have received a copy of my brain on a disc, and yet I have no Roomba in which to put it. The disc comes with some kind of Windows reader and the files are in DICOM format, so I had to do a little digging. In what must be an obvious relief to those with fears of immortality, some folks have come up with a medical image viewer and called it OsiriX.
Once fired up, OsiriX noticed the disc immediately and imported all the image data, and it has a ridiculous number of ways to look at and tint them. In this view, for instance, it's clear that my mercury levels need topping up:

Looking for other heads? Here are some free ones in blue.
Okay okay, I've been lazy here, but I've been busy elsewhere, the above being part of the action. There's no emergency or crisis or anything, just poking around in there.
Thanks to the wonders of the Canadian medical system I have received a copy of my brain on a disc, and yet I have no Roomba in which to put it. The disc comes with some kind of Windows reader and the files are in DICOM format, so I had to do a little digging. In what must be an obvious relief to those with fears of immortality, some folks have come up with a medical image viewer and called it OsiriX.
Once fired up, OsiriX noticed the disc immediately and imported all the image data, and it has a ridiculous number of ways to look at and tint them. In this view, for instance, it's clear that my mercury levels need topping up:

Looking for other heads? Here are some free ones in blue.
Labels:
Cheap Animation,
Computer Stuff
Monday, July 15, 2013
I Did Not Need This to Happen.
Improvements!
Firefox now adjusts the page zoom level according to your Windows settings, to better support high DPI displays. For example, if Windows is set to 125% font size (120dpi), the content area will be zoomed by 25% compared with Firefox 21 and earlier.It seems to me that 21 previous versions of Firefox did fine without this. I have Windows at 125% to use a different program: I didn't actually want Firefox zoomed. But perhaps there was a groundswell of support for this option from users who had 100 other solutions at hand that simply wouldn't do. And now to get it back to where it was...
The straightest line back toward the earlier style of display is the following two step approach:...which doesn't actually work the way I want it to work and doesn't change the RSS feed displays.
Step 1: Install the Theme Font & Size Changer extension. Why? Because turning off the scaling affects the chrome area (menus, toolbars, and tabs) as well as the content.
After restarting Firefox, click the new "A" icon at the right end of the navigation toolbar and change the font size from Normal to 15.
Step 2: Change your global scaling in the about:config preferences editor.
(1) In a new tab, type or paste about:config in the address bar and press Enter. Click the button promising to be careful.
(2) In the filter box, type or paste pix and pause while the list is filtered
(3) Double-click layout.css.devPixelsPerPx and change its value to 1.0 for Firefox 21-sized fonts in the content area.
This should take effect immediately without another restart.
Labels:
Computer Stuff
Monday, July 8, 2013
NodeBox
NodeBox was initially a Processing rip-off, but with Python instead of Java. It was a little odd, because for some reason it did a lot less than Processing but was about as hard.
It still does less than Processing, but the new version of NodeBox is now a rip-off of VVVV, which is kind of nice, and it's cross-platform, which is nicer.
As with VVVV and Quartz Composer, you connect items together in a kind of flowchart, thus avoiding all that tedious coding.

It still can't touch Quartz Composer, and the interface is quirky, but the above plan was enough to whip up an animation like this in short order:

Crucial tutorials here and here.
Quick and dirty Thundra suggestion:

Hmm, larger file, but way prettier:
It still does less than Processing, but the new version of NodeBox is now a rip-off of VVVV, which is kind of nice, and it's cross-platform, which is nicer.
As with VVVV and Quartz Composer, you connect items together in a kind of flowchart, thus avoiding all that tedious coding.

It still can't touch Quartz Composer, and the interface is quirky, but the above plan was enough to whip up an animation like this in short order:

Crucial tutorials here and here.
Quick and dirty Thundra suggestion:

Hmm, larger file, but way prettier:

Labels:
Cheap Animation,
Computer Stuff
Monday, June 17, 2013
Intersection
Here's an intersection near my place:
This is at night, about 20 minutes ago. Back to basics in Quartz Composer. Top level:

Render in Image is piling up images from the stuff contained within it, according to how those things display colour. There's also a white background, as the image coming through is a few colours and as literally nothing as you can express on a computer. Inside there:

Video Input is split, one path removes the colour and ups the contrast to near black-and-whiteness. The black goes to alpha, which is transparency. That masks the plain video so the only things that poke through are bright chunks of the image. The Blending setting of the Billboard is set to Over, so images it produces are drawn on top of previous ones. The Blending setting of the Sprite is set to Add: a smidge of really dark nearly transparent colour eventually adds up to white, producing the fade. Might have to up the Sprite colour value a little there... It's another approach to get at this, and much less of a strain on the processor.
Soundtrack...um...
This is at night, about 20 minutes ago. Back to basics in Quartz Composer. Top level:

Render in Image is piling up images from the stuff contained within it, according to how those things display colour. There's also a white background, as the image coming through is a few colours and as literally nothing as you can express on a computer. Inside there:

Video Input is split, one path removes the colour and ups the contrast to near black-and-whiteness. The black goes to alpha, which is transparency. That masks the plain video so the only things that poke through are bright chunks of the image. The Blending setting of the Billboard is set to Over, so images it produces are drawn on top of previous ones. The Blending setting of the Sprite is set to Add: a smidge of really dark nearly transparent colour eventually adds up to white, producing the fade. Might have to up the Sprite colour value a little there... It's another approach to get at this, and much less of a strain on the processor.
Soundtrack...um...
Labels:
Cheap Animation,
Computer Stuff
Friday, June 14, 2013
Trees

Sound for the above from OBS:
I've been playing with filtered video in Quartz Composer. What I'm eventually aiming at is some kind of image accumulation; I'd like whatever's in motion to add to the image and whatever's static to stay. A big problem there is that video is inherently noisy, so if your method of accumulation is registering change, everything in every frame is changing pretty much all the time. The scary trees above are not entirely the product of psychedelic mushrooms, but instead are oak trees in the yard with two layers of edge-detection combined, one produces black edges and one produces coloured edges, the theory being that images might be best accumulated with edge detection because the rest of the image is undisturbed; a little jitter and a spot of colour remains, outlined in black. And indeed there are a few dead spots. Unfortunately the colours are like a plastic robot vomiting tinker toys, but it's a step.
Hmm, maybe there could be histogram comparisons between images and a drastic enough change produces an addition...
Play in Quartz Composer is probably something of a dead end now that Apple's new developer tools are out and there's not really any mention of it. Other things are out there that produce varying levels of satisfaction along these lines, but they're just not as easy/developed yet. I'm hoping that Field gets a little more usable for me.
Labels:
Cheap Animation,
Computer Stuff
Wednesday, June 12, 2013
All Hail the Cloud
Via Tom Slee in comments at Crooked Timber, a nifty little presentation on scalability issues around really huge graphs. From the National Security Agency. Topical geekery! I didn't know about Accumulo for instance.
Anyway...start at 8:20. Haven't got the time to figure out YouTube embeds again.
Golly, if the NSA people manage to get the brain graph going someone will have a head in the cloud.
Anyway...start at 8:20. Haven't got the time to figure out YouTube embeds again.
Golly, if the NSA people manage to get the brain graph going someone will have a head in the cloud.
Labels:
Computer Stuff
Tuesday, May 14, 2013
Nudge

For some reason I'm still turning things into 3D models. What's with that?
In any case I'm relatively happy with where the spiral parsing is going. It's neato for no reason!
This is the Applescript that converts a Kineme plist to a JavaScript in TextWrangler...
tell application "TextWrangler"
activate
process lines containing text 1 of text document 1 matching string "" output options {copying to new document:true}
open find window
replace " " using "" searching in document 1 options {search mode:grep, starting at top:true, wrap around:false, backwards:false, case sensitive:false, match words:false, extend selection:false, showing results:no}
replace "" using "" searching in document 1 options {search mode:grep, starting at top:true, wrap around:false, backwards:false, case sensitive:false, match words:false, extend selection:false, showing results:no}
replace "\\t" using "" searching in document 1 options {search mode:grep, starting at top:true, wrap around:false, backwards:false, case sensitive:false, match words:false, extend selection:false, showing results:no}
replace "\\r" using ", " searching in document 1 options {search mode:grep, starting at top:true, wrap around:false, backwards:false, case sensitive:false, match words:false, extend selection:false, showing results:no}
replace "(\\s.+?\\s.+?\\s.+?\\s)" using "\\1\\r" searching in document 1 options {search mode:grep, starting at top:true, wrap around:false, backwards:false, case sensitive:false, match words:false, extend selection:false, showing results:no}
replace ", \\r" using "\\r" searching in document 1 options {search mode:grep, starting at top:true, wrap around:false, backwards:false, case sensitive:false, match words:false, extend selection:false, showing results:no}
set bounds of find window to {419, 469, 1045, 684}
close find window saving no
add prefix and suffix document 1 prefix "_Queue.push([" suffix "])"
replace "\\A^" using "_Queue = []
function (__structure Queue) main (__index Size)
{
var result = new Object();
" searching in document 1 options {search mode:grep, starting at top:true, wrap around:false, backwards:false, case sensitive:false, match words:false, extend selection:false, showing results:no}
replace "\\Z$" using "
if (_Queue.length > Size) _Queue.splice(0, _Queue.length-Size);
result.Queue = _Queue;
return result;
}" searching in document 1 options {search mode:grep, starting at top:true, wrap around:false, backwards:false, case sensitive:false, match words:false, extend selection:false, showing results:no}
end tell
Cool huh? I KNOW! Of course if I actually knew how to grep well it'd be, like, one step or something...In other computer-geek news there's this interesting open-source thingie called Field that, notwithstanding the nonsense above, is a little too code-based to be fun for me, but it goes in the same direction as Processing and Quartz Composer, with a kind of timeline that rolls over boxes of code that get run in sequence. The latest alpha didn't run on my laptop, but the last beta did.
Labels:
Cheap Animation,
Computer Stuff
Sunday, April 21, 2013
An Ordinary Weekend
From an afternoon recital:
My haiku is wrong
I miscounted syllables
What do I do now?
What's with airline food?
Salsbury steak and carrots?
It sucks! Who's with me?
Sadly, I cannot take credit for the drawing below. I did put it in motion, however, after figuring out something about pivoting in Quartz Composer: "Origin" controls on the XYZ axes change the centre point of an image, meaning that you can orient rotation pretty easily and therefore pass control values up through the chain without too much trouble. Then you can keep the template around for re-use in proper Hanna Barbera style.
Audio stolen from The Heckling Hare and possibly the greatest sequence ever put on film.

My haiku is wrong
I miscounted syllables
What do I do now?
What's with airline food?
Salsbury steak and carrots?
It sucks! Who's with me?
Sadly, I cannot take credit for the drawing below. I did put it in motion, however, after figuring out something about pivoting in Quartz Composer: "Origin" controls on the XYZ axes change the centre point of an image, meaning that you can orient rotation pretty easily and therefore pass control values up through the chain without too much trouble. Then you can keep the template around for re-use in proper Hanna Barbera style.
Audio stolen from The Heckling Hare and possibly the greatest sequence ever put on film.

Labels:
Cheap Animation,
Computer Stuff,
Verse
Tuesday, April 16, 2013
Recycling
In Quartz Composer pursuits I've been playing with Collada files (which have a .dae file extension). I was relatively enthused about looking at them since they're just XML files, which are usually readable and therefore manipulable by simpletons but it turns out they're really big and complicated and annoying. For instance this download is the simplest possible cube I can make, spat out of Sketchup with all options turned off and Texture Mapping as the material choice, and dimwitted manual chopping after that. It's a fucking CUBE for god's sake, and if you open the .dae in a text editor it's 86 lines long with vertex information and a count of polygons - 48 of them from 0-47 - and so on. That seems like overkill, even though it's still less than half the line-length of the cube here. So the previous javascript in Quartz Composer wins for simple objects ...except that Javascript in Quartz Composer seems to like overpopulating its arrays so we limit the size with a method stolen, once again, from Kineme.
It turns out that once I figured out some of the logic of Collada files (this was a big help) I could paste information about Callista into one of those and end up with a relatively small file (~80kb) instead of the 8MB giants like this baby, but I don't yet understand how to fill out volume so she ends up as a set of menacing polygons:

Turn her in this direction and she's building material for witchy wheatfields:

Kineme also has some plugins that will spit arrays out into a plist...not sure why that was chosen but it does that, and from there we can do a smidge of TextWrangling and just paste vertex and colour information into a JavaScript structure from whatever we have around, that being Callista.
As Callista on her own, pushed into the same javascript module as that cube, she renders quickly and cleanly, disregarding my crappy vertex-order problems; the thing that was making my poor laptop fan try to become airborne and get outta there was just the process of parsing the initial PNG to do array population with (and also I had a pretty big window of data output so I could see where I was fucking up). So with that and some other things lying around...
VOILA!
Okay, you can just SHUT THE HELL UP.
Hmm...I wonder if I can actually salvage some kind of use out of an ambulatory—THERE SHE IS AGAIN! GET HER!
It turns out that once I figured out some of the logic of Collada files (this was a big help) I could paste information about Callista into one of those and end up with a relatively small file (~80kb) instead of the 8MB giants like this baby, but I don't yet understand how to fill out volume so she ends up as a set of menacing polygons:

Turn her in this direction and she's building material for witchy wheatfields:

Kineme also has some plugins that will spit arrays out into a plist...not sure why that was chosen but it does that, and from there we can do a smidge of TextWrangling and just paste vertex and colour information into a JavaScript structure from whatever we have around, that being Callista.
As Callista on her own, pushed into the same javascript module as that cube, she renders quickly and cleanly, disregarding my crappy vertex-order problems; the thing that was making my poor laptop fan try to become airborne and get outta there was just the process of parsing the initial PNG to do array population with (and also I had a pretty big window of data output so I could see where I was fucking up). So with that and some other things lying around...
VOILA!
Okay, you can just SHUT THE HELL UP.
Hmm...I wonder if I can actually salvage some kind of use out of an ambulatory—THERE SHE IS AGAIN! GET HER!
Labels:
Cheap Animation,
Computer Stuff
Thursday, April 11, 2013
Horrification
This video is kind of jerky...building the model takes a lot of horsepower and then running the screen capture at the same time adds more to that. But yow is my brain ever tired of figuring out how to do this, and boy am I addicted to figuring out how to do it. Quartz Composer runs a single pass on an image and collects vertices and colour information, and as it does so it builds the charming image below. It gets more smooth once the model's built.
Labels:
Cheap Animation,
Computer Stuff
Saturday, April 6, 2013
Totally a Quartz Composer Structure Tutorial
Here and here are two helpful tutorials that show you how to make a simple shape in Quartz Composer. I tried them out, they work fine, and I'm grateful. They do, however, rely on plugins from the fine folks at Kineme, and they require a lot of fiddling with little elements and building up connections. Now that I have unparalleled* ability to paste numbers into a javascript patch I know an easier way to make simple shapes, no plugins necessary.
So rather than forty-some little connected widgets we'll use five, with one being optional. In Quartz Composer do command-return to get to the Patch library and drop these into the editor window:

Clear clears the stage with the colour of your choice. The little "1" on the right means it's at the first or bottom level of rendering, visuals added later are by definition on top of that.
Javascript is where we're gonna store the coordinates for our shape.
The Mesh Creator takes information and passes it to the Mesh Renderer. There's an important setting in it: click on it, press command-I and then command-2 to get to the Settings pane. We want the drop-down menu to say Volume.

The Mesh Renderer should work fine when you pull it out of the library. The little number should say "2". If not, adjust it.
The LFO is strictly for showing off. It produces a number that varies in a predictable way over a period of time, so we'll rotate the image to show that it has volume. Parameters used:

If everything's hooked up - script to vertices and texture coordinates, Mesh Creator to Mesh Renderer, LFO to any rotation coordinate - then you go to the Settings pane of the Javascript patch and put this in there:

Being an ignorant savage I couldn't write a Javascript from memory if my life depended on it, so beyond knowing that "Queue" is an array and I have pushed a series of numbers into it, no I have no idea why the syntax is what it is, and there's no reason to care as long as it does what I want. I know it works, and each combination of numbers is an XYZ coordinate.
Conveniently for lazy people who want psychedelic grooviness on the cheap, texture coordinates are Red Green Blue and Alpha, and if you don't supply the alpha Quartz Composer doesn't care. So what the hell, you plug the same values from the Javascript patch into both Vertices and Texture Coordinates in the Mesh Creator and you get this rotating in your viewer:

Save it. Find your library folder, drop it into the Screen Savers folder and voila, you have made a screensaver.
Javascript is apparently the slow way to get some more intense operations done, but for some simple static shapes it shouldn't be a problem.
*All claims entertainment related only.
So rather than forty-some little connected widgets we'll use five, with one being optional. In Quartz Composer do command-return to get to the Patch library and drop these into the editor window:

Clear clears the stage with the colour of your choice. The little "1" on the right means it's at the first or bottom level of rendering, visuals added later are by definition on top of that.
Javascript is where we're gonna store the coordinates for our shape.
The Mesh Creator takes information and passes it to the Mesh Renderer. There's an important setting in it: click on it, press command-I and then command-2 to get to the Settings pane. We want the drop-down menu to say Volume.

The Mesh Renderer should work fine when you pull it out of the library. The little number should say "2". If not, adjust it.
The LFO is strictly for showing off. It produces a number that varies in a predictable way over a period of time, so we'll rotate the image to show that it has volume. Parameters used:

If everything's hooked up - script to vertices and texture coordinates, Mesh Creator to Mesh Renderer, LFO to any rotation coordinate - then you go to the Settings pane of the Javascript patch and put this in there:
_Queue = []
function (__structure Queue) main ()
{
var result = new Object();
_Queue.push([0, .5, 0])
_Queue.push([-.5, -.5, 0])
_Queue.push([.5, -.5, 0])
_Queue.push([0, 0, .5])
result.Queue = _Queue;
return result;
}

Being an ignorant savage I couldn't write a Javascript from memory if my life depended on it, so beyond knowing that "Queue" is an array and I have pushed a series of numbers into it, no I have no idea why the syntax is what it is, and there's no reason to care as long as it does what I want. I know it works, and each combination of numbers is an XYZ coordinate.
Conveniently for lazy people who want psychedelic grooviness on the cheap, texture coordinates are Red Green Blue and Alpha, and if you don't supply the alpha Quartz Composer doesn't care. So what the hell, you plug the same values from the Javascript patch into both Vertices and Texture Coordinates in the Mesh Creator and you get this rotating in your viewer:

Save it. Find your library folder, drop it into the Screen Savers folder and voila, you have made a screensaver.
Javascript is apparently the slow way to get some more intense operations done, but for some simple static shapes it shouldn't be a problem.
*All claims entertainment related only.
Labels:
Computer Stuff
Monday, April 1, 2013
Because She Was There
I'm not quite sure what to make of this except that it was made:

Yes, that's Callista Gingrich, and I have gotten Quartz Composer to take a PNG and turn it into a DAE equivalent with brightness as the third dimension, to what end I do not yet understand. The squares are representations of points; in theory I should be able to make a Callista wireframe and manipulate it, but there is apparently some magic to the ordering of meshes that I haven't worked out yet; at the moment trying to give her volume doesn't work because the vertices are in the order of the slices of PNG (in a Javascript array - yay me) and it just makes lines in mildly Callista-shaped grill. Hmm. It may require some math I am not up to. Anyway, for now I can do weird shit like this:

Maybe the path to learning this is to just make a simpler array and mess with the vertex order before trying something so complicated.

Yes, that's Callista Gingrich, and I have gotten Quartz Composer to take a PNG and turn it into a DAE equivalent with brightness as the third dimension, to what end I do not yet understand. The squares are representations of points; in theory I should be able to make a Callista wireframe and manipulate it, but there is apparently some magic to the ordering of meshes that I haven't worked out yet; at the moment trying to give her volume doesn't work because the vertices are in the order of the slices of PNG (in a Javascript array - yay me) and it just makes lines in mildly Callista-shaped grill. Hmm. It may require some math I am not up to. Anyway, for now I can do weird shit like this:

Maybe the path to learning this is to just make a simpler array and mess with the vertex order before trying something so complicated.

Labels:
Cheap Animation,
Computer Stuff
Saturday, March 16, 2013
I Am Totally a Programmer and Stuff
Anyone want to test a file for me?
It seems I can embed Quartz Composer files in apps that'll run on a Mac. This particular app requires sound input (thus far a built-in mic and a USB mic seem to work).
The top left window in the screenshot below is pretty much the deal:

Yes, a tiny window contains a crazy lady who accepts audio input a little like this. In this case, though, she's listening to you and your environs, and her eyes and mouth react to different frequencies.
I suppose I should do a little caveat here - given that I haven't let a program out into the wild EVER - and say that nobody with sense should run this, but I swear to god it's not doing anything other than reacting to mic input: it shouldn't eat your filesystem or anything, and any other potential functionality has been removed just to see if the goddamned thing works.
And sorry, word verification on. Poor blog's getting pounded.
It seems I can embed Quartz Composer files in apps that'll run on a Mac. This particular app requires sound input (thus far a built-in mic and a USB mic seem to work).
The top left window in the screenshot below is pretty much the deal:

Yes, a tiny window contains a crazy lady who accepts audio input a little like this. In this case, though, she's listening to you and your environs, and her eyes and mouth react to different frequencies.
I suppose I should do a little caveat here - given that I haven't let a program out into the wild EVER - and say that nobody with sense should run this, but I swear to god it's not doing anything other than reacting to mic input: it shouldn't eat your filesystem or anything, and any other potential functionality has been removed just to see if the goddamned thing works.
And sorry, word verification on. Poor blog's getting pounded.
Labels:
Computer Stuff
Saturday, March 9, 2013
Instant Crappy XML in TextWrangler with Applescript
One of the things I've been thinking about recently is JanusNode-style output in Quartz Composer, so that, I dunno, streams of nonsense can come out of goatse's ass or something. The JanusNode comes with a whole bunch of ready-made material in text files, so it'd save a whole lot of work if we could get those into QC.
QC will do a lot of stuff, but one of the things it won't do without massaging is get the contents of a text file. There are third-party plugins out there that'll do such things, but I like being able to export to a movie that'll play in Quicktime 7: from there those will render to honest-to-god video instead of remaining a collection of widgets executing graphical instructions in a proprietary environment.
XML files, as opposed to text files, are a different matter; .dae files are just big XML files and that annoying Mac screensaver that displays RSS feeds is parsing the same kind of thing. I know nearly nothing about XML, but it seems to me that the XML desired by QC is pretty damned dumb, and this works in an otherwise blank file:
From there it's not a problem to get QC to choose between the two items, because it can count the amount of "words" tags and get what's in the "data" tags (or whatever other tag you wanna specify at that third level) according to some number-choosing operation: which would you like?
The problem here is that some of these lists are long. Like this one:

There are about 7000 lines in that file, many of them varieties of zombie.
Fortunately, though, that screenshot is of wonderful Mac freebie TextWrangler, and it can do shit, like crazy grep replacements across multiple files. First I thought I could be a smarty-pants and write one grep for a whole file, but I'm not that good, so I broke it up. If you do a find for

And, quite wonderfully, TextWrangler can save that search pattern in the little g-for-grep drop-down menu on the right and reapply it to anything you wanna deal with in future.
Then, since going to the start and end of a file and typing a few characters is backbreaking labour worthy only of the salt mines, you add saved find/replaces like so: find "
But wait! You say you are as unskilled as I am and EVEN LAZIER? Why then you use AppleScript, you lazy person, and you can use TextWrangler's capabilities to keep a script in the script menu, making it a one-step process. This last thing is a pain in the ass to get running in a satisfactory manner, thus this post for slugabeds everywhere. Who have Macs. And TextWrangler. And want to make word lists into XML files. Hello, possible person who may be me forgetting something! Remember to be less boring.
With a little bit of cribbing from this post and snippets of a script recorded within TextWrangler, I managed this very satisfying piece of work:
And now that script (note the double-slashes in the AppleScript grep) lives in here in TextWrangler and works fine:


I might make it a drag-and-drop converter thing later if HEY IF I UPGRADE I GET PONIES.
QC will do a lot of stuff, but one of the things it won't do without massaging is get the contents of a text file. There are third-party plugins out there that'll do such things, but I like being able to export to a movie that'll play in Quicktime 7: from there those will render to honest-to-god video instead of remaining a collection of widgets executing graphical instructions in a proprietary environment.
XML files, as opposed to text files, are a different matter; .dae files are just big XML files and that annoying Mac screensaver that displays RSS feeds is parsing the same kind of thing. I know nearly nothing about XML, but it seems to me that the XML desired by QC is pretty damned dumb, and this works in an otherwise blank file:
<XML>
<words>
<data>goatse</data>
</words>
<words>
<data>pygmy goat</data>
</words>
</XML>
From there it's not a problem to get QC to choose between the two items, because it can count the amount of "words" tags and get what's in the "data" tags (or whatever other tag you wanna specify at that third level) according to some number-choosing operation: which would you like?
The problem here is that some of these lists are long. Like this one:

There are about 7000 lines in that file, many of them varieties of zombie.
Fortunately, though, that screenshot is of wonderful Mac freebie TextWrangler, and it can do shit, like crazy grep replacements across multiple files. First I thought I could be a smarty-pants and write one grep for a whole file, but I'm not that good, so I broke it up. If you do a find for
"^.*$"
and replace that result with "\t<words>\r\t\t\t<data>&</data>\r\t</words>"
then every line in the file gets wrapped in the "words" and "data" tags and appropriately indented.
And, quite wonderfully, TextWrangler can save that search pattern in the little g-for-grep drop-down menu on the right and reapply it to anything you wanna deal with in future.
Then, since going to the start and end of a file and typing a few characters is backbreaking labour worthy only of the salt mines, you add saved find/replaces like so: find "
\A^
" and replace with "<XML>\r&
", then find "\Z$
" and replace with "&\r</XML>
" and voila, list to XML file in three steps.But wait! You say you are as unskilled as I am and EVEN LAZIER? Why then you use AppleScript, you lazy person, and you can use TextWrangler's capabilities to keep a script in the script menu, making it a one-step process. This last thing is a pain in the ass to get running in a satisfactory manner, thus this post for slugabeds everywhere. Who have Macs. And TextWrangler. And want to make word lists into XML files. Hello, possible person who may be me forgetting something! Remember to be less boring.
With a little bit of cribbing from this post and snippets of a script recorded within TextWrangler, I managed this very satisfying piece of work:
tell application "TextWrangler"activate
replace "^.*$" using "\\t<words>\\r\\t\\t\\t<data>&</data>\\r\\t</words>" searching in document 1 options {search mode:grep, starting at top:true, wrap around:false, backwards:false, case sensitive:false, match words:false, extend selection:false, showing results:no} saving no
replace "\\A^" using "<XML>\\r&" searching in document 1 options {search mode:grep, starting at top:true, wrap around:false, backwards:false, case sensitive:false, match words:false, extend selection:false, showing results:no} saving no
replace "\\Z$" using "&\\r</XML>" searching in document 1 options {search mode:grep, starting at top:true, wrap around:false, backwards:false, case sensitive:false, match words:false, extend selection:false, showing results:no} saving no
end tell
And now that script (note the double-slashes in the AppleScript grep) lives in here in TextWrangler and works fine:


I might make it a drag-and-drop converter thing later if HEY IF I UPGRADE I GET PONIES.
Labels:
Cheap Animation,
Computer Stuff,
JanusNode
Wednesday, March 6, 2013
Head
This pinhead was made in Makehuman, its body deleted and the mesh simplified in Meshlab, but neither of these generates a .dae that Quartz Composer will understand. So it's in and out of SketchUp, which has recently left the evil Google empire. (Why does it keep asking for access to my contacts list? ACCESS DENIED.) Once into Quartz Composer there's a pretty nifty filter that introduces noise to meshes, and somewhat like Ann here you can make him get scarier according to an audio signal's volume. In his case, export to the GIMP and subsequent reduction to eight indexed colours doesn't really reduce the effect all that much. Looks much cooler live though.

As well there's an interesting and weird freebie called Sculptris that'll start you off with the digital equivalent of a ball of clay which you can then crease and pinch into horrifying proto-octopoidal shapes. Their site'll make you give them an email to download it, but I got a probably outdated alpha here.
With it I made deformed poultry.

As well there's an interesting and weird freebie called Sculptris that'll start you off with the digital equivalent of a ball of clay which you can then crease and pinch into horrifying proto-octopoidal shapes. Their site'll make you give them an email to download it, but I got a probably outdated alpha here.
With it I made deformed poultry.

Labels:
Cheap Animation,
Computer Stuff
Sunday, March 3, 2013
More Timewasting
Quartz Composer has an irritating problem: 3D meshes don't exist nicely alongside its 2D display elements, so you gotta do workarounds involving Render in Image. The QC sites seem to be of the opinion that Apple's just not bothering with it any more...but Applescript still exists and god knows they've let that languish before.
Anyway, now that the 3D issue's workable, though, other tools that are easier to operate than Blender can come into play.
One's the open-source Meshlab, which I am capitalizing because fuck lower-case. It makes 3D objects quickly and easily, although some of the menus stretch past the bottom of my laptop's screen and are thus unusable. Open source! Also the .dae files it makes don't seem to get read by Quartz Composer so I run them through SketchUp first, which exports a nicer .dae. It's faster than it sounds.
Another pretty easy thing to work with is Makehuman, which I haven't done anything with. That I can show in public. It has a genitalia slider control!
Anyway, here:
Anyway, now that the 3D issue's workable, though, other tools that are easier to operate than Blender can come into play.
One's the open-source Meshlab, which I am capitalizing because fuck lower-case. It makes 3D objects quickly and easily, although some of the menus stretch past the bottom of my laptop's screen and are thus unusable. Open source! Also the .dae files it makes don't seem to get read by Quartz Composer so I run them through SketchUp first, which exports a nicer .dae. It's faster than it sounds.
Another pretty easy thing to work with is Makehuman, which I haven't done anything with. That I can show in public. It has a genitalia slider control!
Anyway, here:

Labels:
Cheap Animation,
Computer Stuff
Friday, December 14, 2012
Hits (Also the New iTunes Sucks)
Statistics prove that the new iTunes sucks:

Just put the goddamn DJ back. It was fun. You can still find old versions over here.
Have a video.

Just put the goddamn DJ back. It was fun. You can still find old versions over here.
Have a video.
Labels:
Computer Stuff
Subscribe to:
Posts (Atom)