#!/usr/bin/python # Temporary helper script while I update main.py import os import sys import time import argparse import multiprocessing from subprocess import Popen from ctypes import * from itertools import ifilter import numpy as np import Image import scipy import pycuda.autoinit import cuburn.render import cuburn.genome import pycuda.compiler import pycuda.driver as cuda import cuburn.code.interp np.set_printoptions(precision=5, edgeitems=20) real_stdout = sys.stdout def save(rimg, pfx): noalpha = rimg.buf[:,:,:3] name = pfx + str(rimg.idx) img = scipy.misc.toimage(noalpha, cmin=0, cmax=1) img.save(name+'.png') print name, rimg.gpu_time sys.stdout.flush() def main(jobfilepath, outprefix): # This includes the genomes and other cruft, a dedicated reader will be # built in time tho info = cuburn.genome.load_info(open(jobfilepath).read()) times = np.linspace(0, 1, info.duration * info.fps + 1) #rtimes = zip(['%05d' % i for i in range(len(times))[1:]], times, times[1:]) rtimes = [('still', times[0], times[0]), ('motion', times[1], times[2])] renderer = cuburn.render.Renderer(info) renderer.compile() renderer.load() for out in renderer.render(rtimes): save(out, outprefix) if __name__ == "__main__": main(sys.argv[1], sys.argv[2] if len(sys.argv) > 2 else 'out/')