Sunday, December 28, 2014

Even landmarks get festive!

Haven't left the apartment other than heading out for a swim or to buy groceries. XD

Wednesday, December 17, 2014

Sometimes I wonder why I learn CG...

I guess I'm feeling a little lost, as I'm not yet feeling the love for the classical pieces I'm working on at the moment, and I have to be one of the few people who have never touched a guitar till their mid thirties!

Granted, the guitar is quite enjoyable, but I never got into the crazy in-depth keenings when I was learning other instruments. I'm like... "yeah, not bad, making progress with this hal leonard book..."

And I only have *one* book, amazingly. Maybe I've gotten a bit more miserly, as I had a friggin' stack of sax and piano books.


Oh right, I forgot... the traveling around for work bit. Riiight. XD


The music so far that really draws my soul in, is actually lute music transcribed for guitar - more accurately, Early music. However looking at those pieces, I think they are still a leeeeetle too advanced for me at my stage.

Plus, I really want to figure out how to write for CG.

Maybe you'll see me with a glockenspiel next.

No, a marimba is more likely. XD

Tuesday, December 16, 2014

Houdini Cube Maps

There are a few built-in ways to generate environment maps in Houdini - they can be auto-generated by each object, and you'll need to use the isixpack command line tool to combine them, or render a polar environment map with a camera and use hdrshop to convert to whatever format you need. The isixpack workflow is a tiny bit annoying and I wondered if it could be possible to generate a map like this at a go directly without isixpack. Also, I don't run windows, so HDRshop is out of the question for me.

Came up with this idea of using Mantra's UV space rendering to render a cube with its UVs laid out in the vertical cross format. And the shader simply shot a ray into space (the direction vector is simply current object space position, as my cube was at the origin). Good fun. Now to do something more productive, like figure out bullet constraints in-depth.

Monday, December 08, 2014

Path of the Reindeer

So, this is the piece of music that has got me thinking about laptop upgrades. This evening, I found some resources online that allowed me to get MIR working - basically 1024 buffers and large processor buffers in Logic - and most of the time it gets by without buffer over runs. The next assignment I have will be much simpler, harp with 4 percussion instruments, no worries there!

Laptop Amortization

This weekend has been a busy one... kind of. I've been working on my music assignment for about 3 weeks and finished writing all of it in Printmusic on Saturday.... then decided to spend the rest of the day reading a book :P

Most of Sunday was spent sequencing the written music - that's the process of making actual audio from a score. The sounds I use are from VSL, which are one of the top companies for writing detailed intricate music. I like to pretend I'm writing detailed, intricate music. But the stuff I wrote can only be accurately sequenced with either VSL Dimension Strings as well as a few other libraries out there.

The reason being is that, for example, I have 8 string players on my first violins section. I've written some lines that need these 8 string players to be split into two groups of 4. Some composers compose music that requires taking 8 players into 4 desks, one pair of violinists per desk.

Lots of orchestral samples record all 8 players (nb: the violin 1 group varies depending on the orchestra) at once, so you can't really split them up. If you play two lines with 8 recorded players each, you are arguably getting the sound of 16 players. Not good.

Dimension Strings from VSL, gets over this issue by actually providing samples for each individual player. Even more crazy, they do it for each individual string, each note sounding different depending on how hard the strings are played, and multiple recordings are done for each volume level and much much more.

Unfortunately, this means that instead of just reading of one set of samples, I'm actually having to read 8 sets of samples for just the 1st violins vs just one set for other sample libraries. Add in the various "articulations" - different recordings of how an intrument is played - short notes, long notes, intervals between notes, special effects. All these also need to be recorded at different volume levels, as a french horn for example, sounds totally different at maximum volume versus played softly.

Intense amounts of data to process..

And my machine is 4 year old, Core 2 duo laptop :P


The machine conked out yesterday, with 16 violins playing together. No crashes, just the usual - "unable to process that much data" warning. That was no problem, as Logic, as many DAWs, feature a Bounce to Disk feature. Basically, it writes out the live audio played back by the sampler into a sound file on disk.

Playing back this sound file is near effortless; I have over 20 separate tracks for this piece, and the cpu meter in Logic barely ticks over playing the files together.

But sequencing the sounds is only part of the game, there is still mixing and mastering.

For "mixing", I have not used the traditional way for a long while, but rather use another of VSL's awesome tools, "MIR". MIR works hand in hand with VSL's samples to make samples sound like they were played back in a specific location.

Unfortunately, this comes at a very heavy cpu cost, and my poor core 2 duo was only able to run about 12 tracks in real time. I had to basically bounce to disk every time I make changes in MIR. Very annoying, when previously on smaller ensembles I could do all my changes in real time.

To be fair, VSL's minimum requirements indicate an i7, ideally a Xeon; I'm on a Core 2 duo!

Which brings me to laptops: Is it time to upgrade?


I've got my macbook for about 4 years now, bought it certified refurbished for just under 900 pounds if memory serves. Solid machine, not any problems so far, and I put in a SSD last year and got a major boost in speed.

Getting a new laptop is _slightly_ unreasonable as I don't really do anything serious with it. The odd houdini test here and there. Web browsing. The retro games off don't need that much horsepower!

But it would save alot of time if I didn't need to do all these bounce to disk operations So.... how much did my laptop cost me all these year?

Quick maths indicates its about 19 pounds a month, amortized over 48 months. Not too bad I think!

So, if I were to get a new macbook, I can sell my existing one, which would bring the price down, and that would help bring down the amortization as well.

Another issue is that the newer modelled 13in macbooks do not have nvidia graphics, and I have concerns about running Houdini on them - my Core 2 comes with a crappy nvidia something, which is good enough for all the stuff I want.

Ponder ponder ponder.

Monday, December 01, 2014

Weather and stuff

It was warm last night! Could not sleep till probably 3am? Whatever it was, I was waking up endlessly in the heat. Blah. Oddly enough, the temperature dropped like mad, and it was very cool when I left the house this morning.

I'm not sure what's going to happen when the full summer temperatures hit! XD

I also came across Chrono Cross for vita! OMG! I can't wait for the holidays to come so I can dedicate a few days to playing it. I love the music, and I hope the game play lives up to that of Chrono Trigger. That, and FFX/X2 will keep me firmly in place at home...

Can't wait XD

Monday, November 17, 2014

Got a new toy...

Haven't updated in a while, been struggling to get a neural network example working, but to no avail (insert sad face). I've shelved it for the moment and am snuggling up to several new ebooks on my kindle, as well as a new toy I've bought, a graphical calculator. Ostensibly, it is to be used for following along the math classes on Khan Academy. We'll see how that holds up XD

I was wondering if I had totally forgotten about powers as squaring a negative number got me a negative. I was like.... (o.0)

Testing on the mac indicated that.. yes... -1 x -1 is 1... so what's up with that?! Evidently, it's how the calculator evaluates such statements, the proper way to do it is with the parentheses. Anyways... here's hoping as I go through all the basics, that I will one day understand calculus.

Sunday, November 02, 2014

Down by The Sally Gardens

Must be the weather. Had a sudden need to learn a new tune, and found this lovely piece. Decided to play it on the low F, as the low A just takes a leeeeetle too much breath for a slow piece. I also found a staircase in my apartment that appears to be unconnected to the main living areas, and it had a marvelous reverb - had to try a recording there.

Unfortunately, I don't think I'm that much of a fan of such a long recorded reverb. Its great fun to play with such a long reverb, but I think it's a bit overwhelming. In addition, playing rubato - no tempo - was really difficult. With just the whistle alone, it needs to feed into the subconscious rhythm of the music of as well and I don't think I did too good a job.

Live and learn!

Hallett Cove

Yesterday was a bit cold and very windy, which I thought was perfect weather to go capture some sound waves of the beach. Hallett Cove lies about 40-ish minutes away from the CBD via train. There are two stops, Hallett Cove, and Hallett Cove Beach that provide access to the cove. I got off at the beach stop, and made my way back to the other train station. I would suggest doing it the other way round, as there would be a board suggesting the walk routes to take.

The beach is not one for swimming; it's those kind of beaches covered in rather big smooth rocks. That said, I saw at least two surfers there, not sure how they navigate the rocks...

The photos don't do it justice, nothing beats experiencing this place on its own. On my way back, I noticed that the length of the train stations are _really_ long, easily 3 times the length of the train. I'm wondering why that is so? Is it because of older trains? Or maybe it is planning for the future when the area more densely populated, all they need is longer trains?
Incidentally, this post really should be titled Seaford - as I'd actually visited Seaford to check out whats there. There was a shopping centre... not really my thing :P Along with Moana Beach and the Moana Sands Conservation park.
 Didn't see any specific walkways, but there was a definite trail, so I kept to that.
 Eh, token shot.
 The conservation park. No wolves here, so I turned back.
Had lunch at Barnacle Bill, and it was quite good.

Have to go back to Hallett Cove another day!

Ratchet and Clank HD Trilogy / Vita

So, completed the first and third of the series this weekend. Had a bloody awesome time! Been a loong while since I spent so much time on gaming. I think there's something to be said about the positive mood gains when completing a level :)

The first game was generally very well done, the main "issues" I have is platforming with the gravity boots, the controls aren't very intuitive for me with them, and I've fallen off the (narrow) paths too many times. If they are static paths, no problem, I can just inch through them step by step, but there are some paths that have lava or what not cuts into the path at times and omg it is so annoying to have to restart a section after falling off the edge >.>

The final boss was the other showstopper, I spent all my bolts buying various ammo (I did not have the ultimate weapon) and didn't really get anywhere. In  my frustration, I switched from "hit him from a distance" to "ah, *@&^ this, let's get close and let him eat my blaster!" (fact: I ran out of bolts to buy the more expensive ammo as I died sooo many times :P)

Unbelievably, the blaster, one of the earliest weapons in the game did really good damage to the final boss! In addition, the blaster takes out mines and critters the boss shoots out, and really the only thing to avoid was the shockwave grenades he throws - I couldn't seem to jump over the shockwaves in close, only from a distance.  By the time I reached the final form of the boss, I had run out of ammo for the blaster. Took out the pyrocitor to melt the mines and critters, while waiting for the ammo boxes to appear... then when the blaster was maxxed out. Bam. Dead boss.

The 2nd game has major crashing issues. Online forums indicate buying the digital download avoids this, gah. I bought the cart because it was used, so really affordable. The crashing is a pain, but what seems to happen is the game saves the data, then loads up the next stage. This loading of the next stage crashes, but upon reloading, you continue onwards in the next stage so it's not too bad, just friggin big waste of time.

I found part 2 of the trilogy to be a big step forward, yet at the same time, many things did not appeal to me. I felt the mini games to be a real drag to play, and that the enemy damage/ammo-you-have balance to be skewed towards the end of the game - or its just that I suck.

Fighting with the wrench up close towards the end of the game is not really doable when fighting large vehicles supported by other flying vehicles with gunbound enemies! The 2nd to last stage had me going back to the ammo vendor endlessly to refill my sniper rifle, then back again. Some stages, I basically gave up killing every enemy unit, and just blitzed through them to get to the end zone, as I had no ammo left!

This is the problem I'm encountering at the moment, running out of ammo as I'm fighting the bulk of the enemies, only to encounter a pair of tanks that I can't kill as I'd spent all my long range ammo on the snipers! Gah! I'm going to put the game aside for awhile.

The 3rd of the trilogy plays like a well tuned engine. It is balanced near perfectly, and has so many convenience features like a "buy all ammo" option. In addition, weapons you have and are already maxxed out don't show in the weapons vendor screen, making it very easy to determine what you can buy for, and what ammo you need.

The mini game here was simple, and very easy to get into the zone; I love the MDK-esque parts when you skydive into new areas with other commando robots. Not sure what else to say, it's a very polished game, and the pacing is great, something is always coming up, making it difficult to say, "I'll stop here for the day" without feeling a sense of un-accomplishment.

One fun thing about the trilogy is that weapons from previous games are available, and if you bought them, get them free! I also like the fact that Clank starts out the 2nd game fully upgraded, because the first game had us going around to upgrade him. Characters from previous games also make appearances. Such continuity just puts a smile on my face.

Can't wait for the movie next year, I'll know who all the characters are now :3

Sunday, October 26, 2014

Green green green.

Visited a friend's place today for a birthday party, and spent some time in the gardens photographing some plants.

Originally I brought my LX5 (together with my R05!) along as I planned to go to Belair National Park after the party, but I was rather worn out from interacting with people. I'm glad I had it with me, as I think it did a marvelous job!

The lighting was touch-and-go, and I waited to shoot the shots I wanted only when the sun ducked behind the clouds. I love the exaggerated perspective, with the LX5's macro focusing, at the 24mm equiv it was bare millimeters from the subjects.

Smashing up crates! Roar!

Not feeling like dealing with buying PSN cards, and with the crapola internet connection I got at home at the moment, I decided to pass on FFX for vita and got the Ratchet and Clank trilogy for my vita instead.

Damned, damned good fun, though some of the mini-games take forever to win. I'm constantly amused by the amount of crates left all over the levels.... desert? Crates. Futuristic city? Crates. On a spaceship? Crates. Inside the sewer... you guessed it. Crates.

The controls don't seem to be re-mappable, which is highly annoying when the strafe control is mapped to the rear touchpad.  Not that it matters, not like there's much to assign to; there are only one pair of L/R buttons on the vita.

Maybe FFX when I'm done here.... thankfully these games do not appear to take too long to complete - I'm at the last boss on the first game in about 11-12 hrs in? Bloody difficult boss, wish I had more in-game currency to buy the health bonuses.

Thursday, October 23, 2014

Houdini: Extracting Transforms

When you get an animated sequence, and want an object to match that animation (note: In this case we are talking about rigid animation, not deforming characters), sometimes you need to fuss with positions and orientations. One way is to extract the transforms between the rest and target positions, and the difference can be used on other objects which then move the same way as the target positions.

Actually, extracting transforms may not be the best term, but that's what's stuck in my head...

The solution is from the Matrix and Quaternion FAQ, Q40.

And the hipfile can be downloaded from the forums:

Perturbation Search

Finally got around to posting a video of my experiment as described by my previous description. It definitely achieves my goals of locating a fit individual faster, but it definitely does not search as far a field as a true GA.

I was thinking about this, and solution spaces that contain many optimum solutions. The approach above simply uses the first agent that has a solution and attempts to improve on the solution. This solution, will be located "nearby" in the search space. Every generation without an improved result increases the search area by increasing the range of perturbed values.

If it goes on long enough, this will simply devolve into a purely random search.

I'm also pondering if I were to extend the random search; instead of using the first found individual to lookup a best result, we can continually use the random search, and every individual found put through the perturbation search. That could help locating another optimum solution in a different space.

Interesting questions, however I want to explore other such stochastic search methods. Onwards!

Monday, October 13, 2014

Genetic Algorithm-like algorithm thoughts

So I'm working on an idea that I came up with that _seems_ to work - a way to quickly optimize results around the local optima, and it seems to work. It is no longer a genetic algorithm, but something that will give a *local* optimal result faster, but will take longer to locate solutions in another space.

First, I begin with a broadband random search for an agent of a certain fitness; in my test case, it is to locate an agent that will complete the course under 10 seconds. Once this agent is found, the algorithm will optimize in the local space.

This is not done via crossovers; it is even simpler. The next generation of agent simply starts with the fittest agent of the last generation, and the control values are jittered by a certain delta. This delta is increased when a new generation does not find any fitter results, and is reset to a low value when a new fitter agent is found.

In my tests, the results are quite striking. The modified genetic algorithm yesterday required over 360 generations to find a really fast result; the method mentioned above located an even faster agent under 100 generations.

While running the simulations, the spread of the delta got me thinking about the number of agents looking for a solution.

When the delta is small, the X number of agents cover a certain search region; when the delta gets larger, but with the same number of agents, there are many "spots" where we are blind to the results; there are far more problem space versus agents to run them.

Hence, it is in my opinion that for my particular problem space, with a limited number of agents, the rate of increase of the delta should be smaller, so as to allow the agents more time to search before casting the net wider.

On the other hand, due to the algorithm searching in a very local space, it will take *forever* to relocated to another area with a more optimal solution space (if such a space exists).

I will probably spend another day exploring this, but I want to explore neural networks next :)

Sunday, October 12, 2014

Exploring Genetic Algorithms 2

Finally got my prototype working yesterday, and here is a run as it optimizes the agents. Basically once it finds a first suitable candidate, it checks the surrounding for answers, before moving further afield in search of possibly better solutions.

This has given me ideas to possibly make the algorithm locate results faster... but we'll see when I get to coding it.

Classical Guitar

I wish I had my tripod, this view isn't very flattering... :-/

Ah well XD

Adelaide Zombie Walk 2014

The Adelaide Zombie Walk hosts thousands, if not more people dressed up in zombie gear for a fun afternoon of zimbie-ing and at the same time raising funds for a good cause. More details here.

I missed the earlier portion of the walk, I think it started earlier than the stated time and only caught the massive crowds on their way back to Rymill park. Which is sad, as I'd scoped out some places along the path that would look great in a photo but oh well.

At the very least, I got a small video above, and some shots below. Enjoy!