Middle-Mouse panning in Unreal Editor 4

Lately I’ve been playing around with the Unreal Engine 4 source code and it’s quite a lot of fun - especially the Nvidia Flex builds, that integrate the Flex Physics library. Crazy stuff. What bothered me a lot was that in the node editors you were only able to pan using the right mouse button, which was also used for the context menu. So whenever there was a bit of lag, the context menu would pop up instead of the pan happening.

Windows Firewall Event Logging

I’ve been testing Windows Firewall control for some time now and it’s a nice interface for the built-in Windows Firewall (quite similar to e.g. Little Snitch on the Mac, although not as refined yet). Anyway, something to keep in mind is, for its Notifications to work, you need to have WF Event auditing aka. logging turned on, which it is not by default. The installer should, I think, do this automatically.

A toolbar for After Effects

I’m currently busy writing a bunch of After Effects scripts (in ExtendScript, Adobe’s Javascript dialect) and it’s rather painful to have to dig through a long list of scripts under File > Scripts > something or fire up the debugger every time. How handy would it be to, you know, just click a button on a customizable toolbar, like pretty much every other software offers. Pretty handy you say? Yes. Only Adobe has not deemed it necessary so far (just like it is still a pain to open image sequences if you don’t own the Immigration script.

Switching to Hugo, Bitbucket and Aerobatic

I’ve had enough of the constant updates necessary to keep Wordpress even remotely safe. And even then, security faults were popping up left and center. Plus, I got the feeling that the whole thing got really slow recently, which may as much be the fault of my hoster, but honestly in the end I don’t even care any more. Since this is just my personal site, I never really required all the bells and whistles.

Driving simulations with animated velocity fields

Driving DOP sims with animated geometry converted to velocity fields can be a lot faster and offers more control than many other means of influencing sims. In this tutorial I’ll quickly show how to generate your own Velocity Volume and feed it into a fluid sim. The rendered fluid sim I’m showing near the beginning can be seen here:

Cinder VC2015 builds

If you’re working with Cinder on Windows, maybe these binary builds can be of some use to you. I’ll try to keep up with the development branches every now and then. For now, I have just added a new branch to my gitlab repo here with the latest 0.9.1_dev binary build, built in VC2015 for use in Visual Studio 2015. If you are ever plagued by the Unknown compiler version - please run the configure tests and report the results message at build time, you need to update boosts visualc.hpp file under include\boost\config\compiler\visualc.hpp.

Equalizing curve points

As a follow up to my previous tutorial, here is a look at how to resample two curves in a way that keeps their shape and increases the point count to an equal number, so they blend together better.

Blending curves in Houdini and a look at for-each loops

Finally I have got around to recording a new tutorial. I’ll try and make this a more regular thing from now on (as in, more regular than once every year). We’ll see how that turns out… Until then, I hope you’ll find this one helpful. This tutorial will show you how to build a setup similar to Cinema 4D’s Cloner’s or Illustrator’s Blend function to create equally spaced blends between two curves.

Managing Windows hosts file with Hostsman

Many people have not heard of a hosts file. It’s basically just a text file that lists IP addresses and domain names. Before every connection to a named address, your application (e.g. a browser) will check in this list to find the corresponding IP to a website’s domain name. If it can’t find it in the file, it will ask a DNS, a domain name server. Here’s why this is awesome: it lets you, very easily, block traffic to known malware or ad sites, without using any kind of third party software.

Houdini 15 icons

Just like before for H13 and H14, I made a few custom icons to keep things organized on my desktop. Download H15Icons.rar Archive contains PNG, ICN and ICNS files.

Windows 10 on Apple – CACHE_MANAGER blue screen

We’ve just tried to install Windows 10 (and 8.1 previously, same problem) on an older Mac Pro. Whatever we did, we ended up with a Blue Screen shortly after starting up Windows, citing an error in the cache_manager. Cache_Manager errors point towards either problems with your drives (or, aha!, the drivers trying to access those drives!) or memory. Since it happens on an otherwise (on OSX) running machine, we assumed that both drives and memory were ok.

Fabric Engine – Remember to set up your CUDA environment

If, when you run a GPU canvas scene for the first time, Fabric Engine complains about missing hardware support, check your log files whether maybe nvvm64_20_0.dll was not found. It is a library that is part of the CUDA toolkit (Version 6.0 in this case) and, unlike the bin and libnvvp directory, is not added to your system path by the installer. So make sure to also add c:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\nvvm\bin\ to it.

krautsourced domain will lead here for now

Since I hadn’t updated my “regular” website, krautsourced, for quite a while, and the shown projects were rather dated, I’ve forwarded the domain here for now. This is, in theory, a temporary thing. For now, please enjoy the pleasures of this blog and whatever else creeps up on flipswitchingmonkey.

Enable a specific CUDA device – in Houdini

As a follow up to my previous article on how to enable a specific CUDA device using environment variables, it turns out that this works for HIP file environment variables as well. By adding the CUDA\_VISIBLE\_DEVICES variable to your scene file, you can define which device will be used for the OpenCL acceleration. You can confirm the setting by opening the About Houdini dialog and checking the Show Details box. Halfway down those details, there should be a OpenCL Device line with the correct GPU selected.

Enable a specific CUDA device

I’ve been playing with CUDA and the Fabric Engine 2.0 beta and wanted to test the performance on a multi-GPU system and how each GPU did on itself. For this, I had to somehow force a specific card to be visible to CUDA only. And it’s actually rather straight forward to do so, using the CUDA_VISIBLE_DEVICES environment variable. First of all, find out which device has which number. The best way is to use the deviceQuery tool that comes with the CUDA Toolkit.

Berlin Geo Data (or, why can nothing ever be easy?)

Following my previous adventures with geo data, today I had to deal with some from Berlin. First of all, it is fantastic that pretty much everything you want is available for free. So that’s a plus. Not so cool: finding the right pieces of data is a bit of a hassle. First step seemed straight forward: find the right coordinates. I used this page to do it. I was expecting Gauß-Krüger coordinates to be used, and they looked similar enough to this to be right.

Partio / PartioHoudini builds

After hours of going borderline crazy, I’ve just managed to build the latest version of Partio for Windows (Command Line and Houdini). This was way harder than it should be, thanks to all kinds of weird peculiarities in Visual Studio 2012 and 2013. Jeeez. This build is based on the current redpawfx partio repository (as of 28/05/15). It’s not perfect. The Houdini binary does not output any messages regardless of the verbosity level due to cout/cerr/endl not linking.

WordPress 4.2 update did a number on my site

Well then… this was fun. Updated to 4.2 and everything fell apart. The wheels came off. Fire in the attic. So, currently the theme is semi-fucked up and Gust isn’t working either… That’s all. Update: mostly working again now. Update: Arūnas Liuiza has released Gust 0.4.1 which fixes the issues with WP 4.2.

Unreal: Invert middle mouse navigation to move like Maya / C4D / …

Nothing throws me off more when working with multiple application than different shortcuts and mouse controls. It’s just super annoying to constantly having to readjust and actively think about how your hands are moving, instead of concentrating on the actual task at hand. Having just started looking into the Unreal 4 engine, this was the first thing that immediately put me off a bit – the middle mouse navigation (Pan) acts inverse to how one is used to from other 3D apps.

DEM data coordinate system conversion

When dealing with DEM data, you can run into a whole bunch of coordinate systems other than the commen longitude/latitude. For example, DEM data in Germany is often provided based on the Gauß-Krüger and UTM system instead. Never heard of it? Well, it’s nice in so far as it gives you a rectangular grid. It’s not nice as it is really not straight forward to convert between the two… luckily there are a number of conversion tools available online: Orchids LL to various using GMap Delattinia LL to GK using GMap There are a number more (just google ‘lon lat utm convert’ or something), but it is important to know which reference system you are working in (ETRS89 vs WGS84 for example) and also which UTM grid you are in.

Houdini: Dealing with Digital Elevation Model (DEM) data

This article is going to be a work in progress, since the subject is something I’m currently working on in a project and things change daily. DEM data is basically a bunch of number giving you the elevation of a specific spot on earth. That spot is usually encoded in longitude and latitude or some other horizontal and vertical value. So, yes, basically XYZ data. Which makes it pretty easy to work with.

Houdini: remember to lock your door – and your nodes

Something that’s often forgotten (and then sometimes remember when waiting for the same, unchanged node to cook for the gazillions time) is the fact that you can lock nodes in Houdini. You can think of the lock as taking a snapshot of your node-graph up to the point of that node and then working off of that snapshot. Disadvantages: node is locked. So no changes. HIP file grows bigger, because node’s contents are cached to the scene file Advantages: contents are cached in the file – which size-wise can be a problem, but it also means no reliance on external files.

Cinema 4D and After Effects: OpenEXR Multi-Layer workflow

What follows is a simple step by step guide to set up your project for OpenEXR output in Cinema 4D in a way that makes sure the linear workflow is kept intact from the render to the compositing in After Effects (or other similar apps). Cinema 4D Project setup Open your Project Settings either through the menu Edit > Project Settings… or by pressind Ctrl-D (for OSX it’s usually the same shortcut, only it’s Cmd instead of Ctrl).

Cinema 4D: Incremental Save using Python

Here’s a little script for you to use to implement an incremental document save that takes into account letters following the version number, if your naming convention calls for it. For example, here we use a convention using this sort of naming: file_v001_AB.c4d file_v002_YZ.c4d … Why? Because we like to sort by version number and this way the files still sort correctly in the explorer/finder despite artist initals. Anyway, here’s

Quicktip Octane: linear response camera settings

So, here’s a quick tip for Octane (Cinema 4D, but I assume it’s the same in other plugins as well). By default, when you add an Octane camera, under the Camera Imager tab Agfacolor_Futura_100CD is selected as the Response type. Even if “Enable Camera Imager” isn’t turned on, this response type is being used and causes your colors to be tinted in a certain way (presumably emulating the Film stock of that response setting).

Quicktip: Maya 2015 crashes at startup

Check the Output Window. If it says Invalid Python Environment: Python is unable to find Maya’s Python modules make sure you do not have any Python environment variables set. To check, just open a command line (cmd.exe) and type set If you see any variables like PYTHONHOME, remove those by typing set PYTHONHOME= Note that this removes the variables only for this particular session, so if you open another cmd.exe, it’ll still be there.

Windows console replacement cmder

Just a quick link to a pretty nice Windows console replacement called cmder, based on ConEmu but with some further enhancement, notably the Monokai theme as default which is always a plus and some unix tools from git built in. It’s also fully portable via USB stick etc. http://bliker.github.io/cmder/

Cinema 4D Quicktip: Lighting for Reflectance Channel

As you can see I find out new stuff about the reflectance channel every day… again about the lighting this time. An interesting little find: if your material is only using reflectance, and its Roughness is set to 0% (fully reflective with no blur), a regular light will NOT show up at all! And it won’t light the scene either! Turn Roughness to 1% and voila, light’s back. But you may not want even 1%.

Cinema 4D Quicktip: Alembic Caches, TP and Krakatoa (or Turbulence FD, or…)

Previously I posted a PRT ROP for Houdini, so that point clouds could be exported as PRT files to be then rendered in Cinema 4D via Krakatoa (or anything else that accepts PRT files of course). This is still a very valid workflow. You can stop reading now if you want Now, I’m a big fan of the Alembic format. It’s just super convenient. And if you’re not dealing with a 100 million particles (actually… maybe even then?

Cinema 4D: Default Lights

Today I invested some time into understanding how and when the Default Light influences an image. I did this because it bit me in the arse earlier today, when lighting with an HDRI image… but more about that later. First of all, the setting can be found under Render Settings > Options > Default Light. It’s on by default. Here are various combinations and how and if the Default Light plays into them.

Who’s that monkey and why is it flipping switches?

Since there has been some confusion as to what the hell the name of the blog means and what is the deal with monkeys and switches anyway, here’s where it all comes from (skip to second 26): While a mediocre film otherwise, I somehow found Matt LeBlanc’s line here absolutely hilarious. Maybe I’m just simple. Basically what it boils down to (yes, I’m explaining the joke now) is: you’re getting trained for years in all kinds of ways to blow shit up and then they put you in front of a console where, literally, your only job is to flip a switch.

Flask and Teamwork Part 2

I wrote a little_helpers.py that will contain a bunch of functions that will make accessing Teamwork easier. The first step is always to authenticate against Teamwork with the user’s api key and thus, this is the first function making it in there too: def validateApiKey(key): url = "https://authenticate.teamworkpm.net/authenticate.json" auth = HTTPBasicAuth(key, 'pass') r = requests.get(url, auth=auth) json_data = r.json() if "STATUS" in json_data and json_data["STATUS"] == "OK": return (r.status_code, json_data["account"]) else: return (r.status_code, None) Nothing fancy.

Flask and Teamwork – Part 1

As much as a reminder to myself as (hopefully) a little help to anyone planning something similar, I’ll start and document my (as of yet, feeble) attempts to get going with Flask. So far I’ve been using Tornado, and while it is a great framework, I kind of like the lighter approach (and the nice extensions) that Flask offer. Also: never hurts to try something new. The project I chose is a humble one: we are using Teamwork in the office to organise projects and general to-do lists.

Houdini 13 / 14 icons

As great as certain applications are – there is often one little thing that really gets on my nerves and could be avoided so easily: same icons. Yes, if you only ever use the latest version of a software, this really does not matter a whole lot. But Sidefx (to their credit!) release a lot of daily builds, and like with e.g. Cinema 4D as well, you often need to use multiple versions of the software at the same time, be it for the reliance on certain plugins only available for that version, or because you were exploiting a bug only existing in that one build.

PRT Export from Houdini

Houdini, unfortunately, has no native support for the PRT file format used by Krakatoa. There’s an old plugin from Thinkbox that comes in as a Python module. It compiles, but I never got it to actually do anything. If you get it to work, please let me know! Luckily the good people from Robotika and Fiction released their own exporter for Houdini 12 some while back. I forked this and modified it slightly to compile with HDK14 and VS.

Reflectance Channel tested

With the release of Cinema 4D R16 came some new shading tech named the Reflectance Channel. It replaces the old reflection channel (but you can still find all of its previous functions as “Legacy” shaders) and offers a lot of power by giving you layered, physically correct reflection layers with all the bells and whistles like fresnel and bumps and anything else you want to combine from the amount of already available Cinema 4D shaders.

The empire strikes back

Here’s what I wrote previously under “Episode whatever – a new hope”: With this rather witty title (well…) I shall once again endeavour to, you guessed it, blog. Yes, please do, I hear you (nay millions of voices suddenly!) cry out, it has worked out so well in the past! I shall obey, of course. Which brings us to this blank slate of a blog (yes, there were old posts which may or may not eventually reappear, if there is a demand for it).

Tumblr like WordPress for internal use

I was fed up with dozens of emails circling around the office containing links to interesting tutorials or other things, only to be lost in the black hole that is everyone’s inbox. Pages like Tumblr, Facebook etc. work great for this kind of link-dump, but I did not want to have to set up something public for the company that would a) let people know what we are currently looking at and b) have to have artists log in to post something.

Corona Renderer pricing is out

For a while now I have been playing with the Corona renderer (since the Alpha for Cinema 4D came out) and I got to say, I was really impressed by the results and the speed. Honestly, just the fact that it immediately starts rendering without lengthy preparations is a big plus… First of all, yes, the following is quite obviously not great art… but it’s a good test for the speed of a renderer, with refractions, reflections, normal map etc.

Blackmagic (formerly Eyeon) Fusion 7 now available – for free!

Yes, that’s right. Fusion 7.5, which was just recently bought by Blackmagic from Eyeon (or rather Eyeon itself was bought, iirc), has now been released. And the standard version, just like previously done with Resolve, is now available for free. Plus, the way I understand it, the free version uses the same project files as the $999 version, so they are going to be interchangeable! That is huge! Also, the $999 version will not require any subscription or online connection or anything.

Krakatoa for Cinema 4D – Playback Graph troubles

Trying to slow down a simulation in Krakatoa, we ran into some issues. Namely, the playback graph feature is basically useless as it is right now. Why is that? The non-subframe-interpolating method relies entirely on the velocity channel – and at that it relies on some specific amount of velocity that I haven’t quite been able to figure out. Worse, due to the missing Magma editor (see before) you can’t even modify your velocities properly.

Krakatoa for Cinema 4D – First impressions after two weeks

For the last two weeks I spent a lot of time rendering a few billion particles (not at the same time, luckily), using Krakatoa for C4D. The particles were originally simulated in Houdini and exported as caches. Within Cinema 4D, the caches were imported through the PRT Loader object, so that’s what I used the most. We actually tried the X-Particles and TFD integration as well, but both turned out to be lacking in performance and features for our project.

Sign of life

While there’s clearly not a whole lot going on in terms of posts, at least the website has in the meanwhile changed hosts three times now ;) It’s now running on Uberspace and of all the hosters so far, this one is the most convenient, best set up and most deserving of my money so far 😉 Very nice documentation with straight forward examples, an up to date nodejs implementation, fair pricing (more than fair, really)… go have a look.

Houdini QuickTip – OBJ Export and UVs

You must map your UVs onto the Vertices in Houdini, not onto the Points, if you plan to export your object later on as a Wavefront OBJ. If UVs are mapped to the Points, an exported OBJ file will not contain any UV data at all.

Turbulence FD / GTX Titan benchmark results

I bought a GTX Titan for use with Octane, and it scales up nicely, basically 1:1 with the number of CUDA cores. And since Turbulence FD is GPU calculated too, I was expecting to see some very nice results there too. However, I was already wary, since the TFD dev mentioned somewhere that the memory speed is what counts, not the number of CUDA cores. See for yourself just how true that is: Using the Flamethrower example file that comes with TFD, Editor-Update off, on C4D R14 with TFT 1.0 rev 1120: i3930 @4.2GHz: 2:44 min GTX 680: 0:35 min GTX Titan: 0:33 min So it looks like at least for TFD, upgrading to a Titan really makes no sense, unless you are constantly running out of memory, in which case the 6GB may be the solution over the 4GB offered by the GTX 680.

Make Unity open scripts in VS 2012

There are cases where Unity 4, even when explicitely told to through the Editor settings, won’t open scripts in VS 2012, but rather will open VS 2010 instead. This usually happens if VS 2010 SP1 was installed later. If that’s the case, the updater changes a few registry settings that screw up the Unity<>VS connection. But the fix is rather simple, luckily (provided you’re not to scared to fuck up your registry…) - Open your Registry Editor and find [HKEY_CLASSES_ROOTVisualStudio.DTE] - Notice there are [HKEY_CLASSES_ROOTVisualStudio.DTE.10.0] and [HKEY_CLASSES_ROOTVisualStudio.DTE.11.0] right below - [HKEY_CLASSES_ROOTVisualStudio.DTE] has two keys, CLSID and CurVer.

Powershell script to send emails

Since Microsoft in their infinite wisdom have decided to deprecate the “Send Email Message” function from their Event Viewer’s attached tasks with Windows 8 / Server 2012, all that’s left is to run an application or a script instead. While this annoyed me greatly in the beginning, once I started playing with Powershell it turned out to be not so bad. As a matter of fact, it turned out to be rather nice.

Stop Parallels from syncing keyboard layout

While probably a good idea in principle, the keyboard layout sync in Parallels got on my nerves. I’m using a custom layout on OSX and every time I powered up the Windows VM, parallels would swap the OSX layout back to the vanilla UK layout. Changing this behaviour is easy. Shut down your VM and find the .pvm file containing it. “Show Package Contents” and open the config.pvs file in an editor (you probably want to backup it beforehand).

Houdini 12 – write to old GEO format

Turns out it is actually quite easy to write your geometry data back into the pre-H12 GEO/BGEO format! All you need to do is use a File SOP and the file extensions .hclassic / .bhclassic and you’ll get the old file format. Excellent!

Visual C++ 2010 x86 and x64 Redistributable 10.0.4xxxx prevents Windows 7 SDK from installing

If your installation for the Windows 7 SDK (for example, to get 64 bit compilers with VS 2010 Express) fails on a recent system, check in your Programs and Features for Visual C++ Redistributables. Versions newer than 10.0.30319 will cause the installer to fail. You have to remove both 32 and 64 bit versions of them, then the installation should work.

Essential OSX tools

I’m using both OSX and Windows at the same time, so my workflow is slightly “tainted” by both of them. I hate having to readjust every time I switch workstations, so I’m trying to set everything up as similar as possible. There are a few things I like about each system, and oftentimes there are tools available to implement that feature on the other OS. This is a list of tools I install on every OSX.

Essential Windows tools

Since I just set up a fresh system, and did the same for OSX, these are some tools I can’t live without under Windows… Sublime Text 2 – Hands down the best editor there is. And it’s multi platform. Just perfect. Double Commander – a Total Commander clone Sysinternals Suite – a collection of excellent tools, formerly Sysinternals, now belonging to Microsoft. Process Explorer replaces the Task Manager for me, ProcMon is excellent for troubleshooting… really, I can’t pick one that I like most.

Asus W9X79WS SSI-CEB sized board in anidees AI-6B

So, after a moment of worry, I managed to cram everything into the anidees AI-6B case. Since nowhere does it say that SSI-CEB form factor boards actually fit into this case (it is rated for ATX only), I though it might interest some that in fact you _can_ use this case together with the Asus W9X79WS – albeit with a small caveat. Since the CEB sized boards are slightly wider than ATX boards, the rubber openings in the mainboard tray (for cables and such) are mostly covered by the board, so you can’t use those any more (only for very small cables).

Windows 7 and Wacom Intuos – input lag

Those using a Wacom tablet on Microsoft Vista/Win7 will notice that Wacom decided that their drivers are to fully support the Microsoft TabletPC scheme. Admittedly this is nice for those who do want to use their tablet for text recognition and everyday use. You also probably will not notice much of a problem if you are only using the left mousebutton (meaning none of the pen buttons) and only use the pen button to open the context menu.

Windows 7 install and UEFI boot

A problem I just ran into whilst installing Windows 7: upon reaching the part where you select the target drive to install Windows on, you get the error message “Windows cannot be installed to this disk”. It’s a blank, fresh SSD, so there really was no reason – until I noticed that I had booted from a USB cd-rom drive, and in the BIOS you can select either “regular” or UEFI boot mode for that cd-rom drive.

Windows Firewall Notifier and MS Network Monitor

I just found Windows Firewall Notifier, a tool very similar (minus the slick interface, but hey, it’s free) to tools known from OSX like Litte Snitch or Hands Off. Basically what it does is block everything going in and out, hijack the firewall notifications and lets you decide whether to create a rule – which it then does. It’s basically a convenience layer on top of the Windows Advanced Firewall interface.

Dokuwiki update “Adora Belle”

A new version of Dokuwiki has been released and it now finally comes with a nice default template, namely the one they are using for the dokuwiki site itself. For the upgrade, I recommend the upgrade plugin, which makes things much easier than having to go through the whole unpacking and overwriting manually. Just remember to backup your folder beforehand. Dokuwiki has been my wiki of choice for a while now.

New workstation ordered

Since I got fed up with having to heat up my current workstation every morning (I’m not joking, there’s some sort of hardware issue that requires the system to reach a core temp of over 65 deg in the BIOS before stable operation is possible – so much fun!), and there’s a lot of shiny new hardware out there, I went and ordered a new workstation. Some benchmarks will follow (unless I’m drowningin my own tears when it turns out the componentes don’t like each other…), for now this is the shopping list: CPU: Intel i7 3930K Mainboard: ASUS P9X79 WS Cooler: Noctua NH-D14 + mounting kit for socket 2011 Power: NZXT Hale Power 90+ Case: anidees AI-6BS Midi-Tower HDD: Samsung 830 256GB SSD and some leftover 3TB drive RAM: GEIL EVO Leggera DDR3-1866 CL10 64GB Video: Point of View GTX 680 EXO 4GB Wifi: ASUS PCE-N53 N600 On paper, this should be a rocking system.

Scripting a subtitle Text layer in After Effects

How to use a JSX script to create a text layer that reads subtile keys from a file and creates the keys at the appropriate timecode. This will use the currently selected Layer (which should be a Text Layer) and reads a JSON string from a text file, containing the subtitle timecodes and texts. A sample subtitle file looks like this: var subs = { "00:00:07:07" : "Test Subtitle", "00:00:09:07"

Welcome to the monkey cage

I have no idea how many times I have written this kind of article. You know, the kind where I tell you how I decided to redo my website, change the layout, rebuild it from used tissues…. that kind of article. Well, this is another one. Why, when I have only recently finished Krautsourced.com, am I opening up another website, on a different domain too? It’s because I was tired of mixing and matching my professional portfolio with some half arsed attempt at creating a blog, making sacrifices to the portfolio’s layout, so it can acommodate for blog articles as well – only to get fed up with all of it time and again.