2009-05-26

LuxRender performance on AWS

Just plyaing around with LuxRender on a small Blender 2.48 testscene. On my laptop, which has a Core 2 Duo 2,2Ghz, I get about 22k samples/s. Using a "High-CPU Extra Large Instance" AWS instance I get between 120 and 300k. Average seems to be about 10 times higher than for my laptop, which is nice enough. These cost 0.8$ per instance-hour, which is pretty decent for shorter jobs. I'm not sure about the bandwidth needed, luxrender does transmit the "film" every now and then but the interval can be tweaked.

Scaling this up by using more instances is also very easy.

2009-05-19

Lyrics for Fischerspooner - Megacolon

Just corrected a few errors in the version that are around on the net:

Document on Google docs

2009-05-06

How to add implicit imports to an embedded GroovyConsole

I wanted to have a graphical GroovyConsole that had my own APIs automatically imported. This proved to take some time to fix up. This is how it ended up looking. I created this in my normal eclipse-project so that I can easily launch this with the correct classpath already done for me.

TestGUI.java:

package groovy.ui;

import java.lang.reflect.Field;
import java.net.URL;
import groovy.lang.GroovyClassLoader;
import groovy.lang.GroovyShell;

public class TestGUI extends Console
{
public static void main(String[] args)
{
TestGUI gui = new TestGUI();

gui.run();
}

public TestGUI()
{
super();
try
{
setup();
}
catch (Exception e)
{
e.printStackTrace();
}
}

public void setup() throws Exception
{
Field shell =
Console.class.getDeclaredField("shell");
shell.setAccessible(true);
shell.set(this, new OurGroovyShell());
}
}


OurGroovyShell.java:

package groovy.ui;

import java.util.List;
import org.codehaus.groovy.control.CompilationFailedException;
import groovy.lang.GroovyShell;

public class OurGroovyShell extends GroovyShell
{
public Object run(String scriptText,
String fileName, List list)
throws CompilationFailedException
{
scriptText = "import whatever.*\n" + scriptText;

String[] args = new String[list.size()];
list.toArray(args);
return run(scriptText, fileName, args);
}
}



Fairly simple in the end. I was fooling around a bit to get this to work at first. This was done with Groovy 1.6.2.