Tuesday, November 30, 2010

Autodesk Software Free for Academic Users

I've recently installed several Autodesk software suites. These are the full programs and are free of charge. Quite a nice gesture from Autodesk! This only works if you have a .edu email address from a member institution, but many institutions are possible.

Link to Autodesk Educational Community

Wednesday, November 3, 2010

Blog Post on the Vislab

I recently taught a graduate class from digital humanities in the vislab. One of the students wrote a great blog post about her visit and the lab. I replied. Follow the link to read the post!

Visualization, Texas Sized

Monday, October 18, 2010

3D Stereo in Linux w/ nVidia 3D Vision Continued

Finishing Touches for Stereo DLP Usage:
In the last post I detailed how to set up the Xorg.conf file for nVidia 3D vision in Ubuntu Linux with a Mitsubishi DLP TV and active shutter glasses. Because you cannot use overscan compensation correction during stereoscopic playback, you need to set overscan compensation to "0". This can cause the edges of your image to extend beyond the screen however, and make general system usage difficult.






To fix this, I made two scripts and put them in /usr/bin:


stereo_on:
#!/bin/bash -i
nvidia-settings -a OverscanCompensation=0 >> /dev/null 2>&1


stereo_off:
!/bin/bash -i
nvidia-settings -a OverscanCompensation=115 >> /dev/null 2>&1

With these scripts you can turn overscan compensation on and off with a simple command.

Linux Stereoscopic Video Player:
The only thing we were missing with our 3D setup was a stereoscopic video player. Luckily, the video player Bino was just released. It requires the newest version of the ffmpeg libraries, so I built them and then built bino. Here's my steps:

> git clone git://git.ffmpeg.org/ffmpeg/
> cd ffmpeg
> git clone git://git.ffmpeg.org/libswscale/
> ./configure --prefix=/usr/local --enable shared
> make install
> make -j 6
> cd ..
> cd bino
> autoreconf
> ./configure PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH"
> make

Monday, September 20, 2010

nVidia 3d Vision in Linux with Mitsubishi DLP TV

I finally got our 3D setup in the lab working with Ubuntu Linux. Using nVidia's 3D Vision glasses and emitter, we are able to visualize data in 3D, view movies, and play video games ;-) Until now, we've been using Windows 7 and it has been an extremely buggy experience. We've seen the BSOD, lockups, and the 3D just not working. Now that is works in Linux, I think we can kiss the instability goodbye.

nVidia officially supported the Mitsubishi line of DLP TV's in a recent driver release: 256.35. Here is nVidia's list of supported devices. We've got an 82" DLP TV in the lab. You'll need a Quadro graphics card to do Quad-Buffered Stereo in Linux (and Windows).

To get 3D working, you'll need to install the latest nVidia Quadro driver. For a DLP display, you will plug the VESA connector into the back of the TV. The USB plugs into the computer.

The first thing you will have to do is disable compositing and make sure you have no over-scan compensation set for the 3D to work. Here's my xorg.conf file for reference:


# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 256.53  (buildmeister@builder97.nvidia.com)  Fri Aug 27 20:55:22 PDT 2010


Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection


Section "Files"
EndSection


Section "InputDevice"


    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection


Section "InputDevice"


    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection


Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Mitsubishi MEUSPTV11"
    HorizSync       15.0 - 68.0
    VertRefresh     59.0 - 61.0
    Option         "DPMS"
EndSection


Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "Quadro FX 4600"
EndSection


Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "10"
    Option         "ModeDebug" "1"
    Option         "TripleBuffer" "1"
    Option         "TwinView" "0"
    Option         "metamodes" "1920x1080_60 +0+0; 1920x1080_60_1 +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection


Section "Extensions"
    Option         "Composite" "Disable"
EndSection
                     

You'll notice the Option for disabling compositing at the bottom. If you do this, it should work. I'll be updating this post when I get the correct DPI settings and see if I can correct the over-scan issues that seem to be a problem in DLP displays. If you have any problems you can look in your xorg.log file in /var/log. You will have to turn log verbosity to 6 to see modeline information for your TV.

Wednesday, August 25, 2010

How To Do File I/O In Any Language

Recently on Stack Overflow, there was a post about how to do file handling and input and output in any language. I thought it was an interesting post even though it was closed for not following Stack Overflow's objective of a simple Q/A site. Here's a link to the post, which includes a LOLCODE example as well for File I/O:

File I/O in Any Language [Closed]

Tuesday, June 22, 2010

Installing VTK in Ubuntu and Making VTKPython Work

There are at least two ways to get VTK working in Ubuntu with Python wrapping. The first and easiest is to just install the packages with the Aptitude Package Manager:

sudo apt-get install libvtk5-dev python-vtk

Once you do that, you can run vtkpython and it just works. Unfortunately, the version of VTK in the packages for Ubuntu 10.04 is 5.2. That's a little out of date, and I needed a newer version. Here's how to install VTK 5.6 or newer with Python wrapping enabled:

Make sure CMake is installed:

sudo apt-get install cmake

Download the VTK source from the Downloads page.

Untar it:

tar xvzf vtk-5.6.0.tar.gz

Create an Out-Of-Source build and configure with CMake:

mkdir VTK_BUILD
cd VTK_BUILD
ccmake ../VTK

Make sure you enable python wrapping and set your install prefix to where you want the package to go. The default /usr/local works fine.

sudo make -j 8 install
(the -j 8 for make just makes the build process parallel assuming you've got the processors for it)

You now have VTK installed. Congrats! if you try to run vtkpython though, you'll get an error:


vtkpython: error while loading shared libraries: libvtksys.so.5.6: cannot open shared object file: No such file or directory

To fix this, append these lines to your .bash_profile, .bashrc, or .profile file in your home directory:


# add vtk paths
LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/lib/vtk-5.6"
PYTHONPATH="$PYTHONPATH:/usr/local/lib/vtk-5.6"

You'll need to reset your terminal now.

That sets up your library and python paths for the vtkpython executable. To test this, you can run

brandt@amaterasu:~/work$ vtkpython
vtk version 5.6.0
Python 2.6.5 (r265:79063, Apr 16 2010, 14:15:55) 
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from vtk import *
>>> renderer = vtkRenderer()
>>> 

If you got that far, your installation works!





Thursday, June 17, 2010

Search and Replace on Multiple Files

If you need to do a search and replace on multiple files in a directory this little one liner in perl does the job easily:

perl -p -i -e 's/oldstring/newstring/g' `grep -ril search *`

The grep makes sure only files that contain the old string are looked at by the perl script, that way you don't waste execution time - important on really large directory trees.