Archive for the ‘Computer Science’ Category

Rob Pike on Quantum Computing

Friday, February 19th, 2010

Rob Pike is a Google researcher, and has written a bunch of stuff in the past that I’ve enjoyed reading.  He’s also a telescope maker, which scores big points with me.   I recently discovered that he also write an introduction to quantum computing that I had not previously read.   This is an area of computer research that I quite franly know othing about, so I’m bookmarking it for my later consmption.

Gruenberger’s prime path

Wednesday, February 17th, 2010

Here’s an interesting little mathematical morsel from the pages of the bit-player blog having to do with two topics I’ve found interesting in the past: prime numbers and random walks.

Let’s consider the sequence of prime numbers > 3. All such primes are congruent to -1 or to 1 modulo 6. So, let’s use that as the “random” variable controlling a random walk. If you consider all odd integers, you can generate a walk as follows. Take a step in the current direction. If the number is composite, you are finished. Otherwise it is a prime. If it is congruent to -1 modulo six, then turn left, otherwise turn right. You end up with a “random” walk, with several interesting questions about whether it shares properties with real “random” walks. Check the blog entry for more discussion:

bit-player » Gruenberger’s prime path.

I can visualize an interesting program written to draw these which is a modification to the segmented sieve algorithm that I’ve coded up previously. Each “segment” generates a segment of the overall path, and as long as you know the coordinates of the starting position, you can overlay and merge these points with reasonable efficiency. I might have to give that a go some time.

Addendum: In searching for more material by Gruenberger, I discovered that he was an early proponent of the educational uses of computing, and that some of his papers are available for download from the RAND corporation.

Real-Time Rendering Blog

Tuesday, February 16th, 2010

Back around 1984 or so, I first became interested in computer graphics. I was going to college at the University of Oregon, and we didn’t really have any graphics courses or any computers that you would think would be good at displaying graphics. Eventually they got a Tektronix 4115 terminal (which was huge, and cost about $20K in the day if memory serves), which I got hooked to our VAX 11/750, and I had my platform. I started to read and experiment with raytracing. Some early enthusiasm and guidance was provided over USENET by Eric Haines, who I must thank for helping inspire and inform me in those early years. Eric’s patience has shifted from being measured in Blinns to milli-Blinns now, and he’s authored a book called “Real-Time Rendering” and also maintains a very useful blog on the subject. Every once in a while, I glance over and realize that the world is changing, and I’m not keeping up. But if you want to keep up with developments, Eric’s blog will be a good place to start.

Real-Time Rendering · Tracking the latest developments in interactive rendering techniques.

Build Your Own 3D Scanner: Optical Triangulation for Beginners

Wednesday, December 30th, 2009

I keep thinking that I should build one of these, but have never gotten around to it. Bookmarking this interesting link for future reference:

Build Your Own 3D Scanner: Optical Triangulation for Beginners.

Mandelbulb formula…

Monday, November 16th, 2009

Without further explanation, here’s Daniel White’s “Mandelbulb” formula.

(x, y, z)n = rn (cos(n θ) cos(n φ), sin(n θ) cos(n φ), -sin(n φ))
r = sqrt(x2 + y2 + z2)
θ = atan2(y, x)
φ = atan2(z, sqrt(x2+y2))

Kurt Akeley’s Publications

Wednesday, October 7th, 2009

The other day I was lucky enough to be invited by Bob Whitehill to share a lunch up at UCB with Marty Banks, Kurt Akeley and a bunch of other vision researchers from their lab. I was lucky enough once to have been interviewed by Kurt when he was at SGI back in 1994 or so. His office faced Moffett Field, and on that particular day, they were test flying Harriers. My recollection was that we spent time mostly discussing a program that he wrote in OpenGL to emulate the barrel distortion of fisheye lenses, and watching the Harriers go back and forth. I didn’t get the job offer, and Kurt had no recollection of it. Oh well. I suppose I remember that day pretty well because after my SGI interview, I went directly to a first date with the terrific lady who would later agree to marry me. October 25th, 1994.

Since I’ve been living in the bowels of Pixar production, I must admit that I haven’t been keeping up with Kurt’s doings, and it seems like that is a big mistake on my part. In trying to look up a paper that he co-authored with Marty et. al on stereo displays, I found his page at Microsoft which links to a lot of interesting material.

Archived for future digestion.

Kurt Akeley – Microsoft Research

Real-Time Rendering · SIGGRAPH 2009 Course Pages

Monday, October 5th, 2009

I didn’t make it to this year’s SIGGRAPH, but I still try to keep up on my reading. There are several nice courses that occurred, and the guys over at the Real-Time Rendering blog were nice enough to link ‘em for us. Enjoy:

Real-Time Rendering · SIGGRAPH 2009 Course Pages

Day 2 of the NVIDIA GPU Technology Conference

Thursday, October 1st, 2009

Yep, I’m actually at the NVIDIA (why do I type NVIDIA like nVidia? everything seems to indicate that it is all caps now, I dunno) GPU Technology Conference, trying to once again get into the swing of things with respect to GPUs. Sadly, almost everything I know about computer graphics (which is actually considerable) predates the ongoing revolution that GPUs have brought to the table. We’ll see if some of this sticks this time around. For the first time, I’m beginning to grasp the functionality of current machines, and see where the evolution is going such that I feel it might be worth committing a significant fraction of my (seemingly always shrinking) store of available brain cells.

It’s about time for the 2nd day keynote by Hanspeter Pfister from Harvard, to start. I was lucky enough to serve with Hanspeter on a SIGGRAPH Sketch committee a few years back, and it seems like he’s been busy since then.

I might blog more about what’s going on here, but you might as well track what’s going on using NVIDIA’s official conference blog:

GPU Technology Conference Blog – NVIDIA.

Tom Duff on Reading code from top to bottom

Thursday, September 3rd, 2009

Matt pointed to an interesting article by Tom Duff on writing code. It actually clearly elucidates some of the principles that I use in writing my own code. As a caveat, I suspect that I am the original authors of at least one of the code fragments that Tom critiques. :-)

Reading code from top to bottom

Micro-Rendering for Scalable, Parallel Final Gathering

Saturday, August 29th, 2009

Thanks to Kevin Bjorke for pointing out this paper. It combines a couple of interesting features to create a point-based renderer that efficiently uses the GPU to render scenes with global illumination. I’ll have to read it more carefully when I have time.

Micro-Rendering for Scalable, Parallel Final Gathering.



Something fishy going on here…

Monday, August 17th, 2009

Another of my attempts to make pictures from volume data…

carp

Volume Rendering: Going boldly where all have gone before…

Wednesday, August 12th, 2009

Image from CT data downloaded from http://graphics.stanford.edu/data/voldata/

Image from CT data downloaded from http://graphics.stanford.edu/data/voldata/

Okay, this is a bit gruesome, but I’ve been dusting off some old papers that I never really understood on Fourier Volume Rendering, and testing my understanding by writing some simple code that takes in a volume dataset and uses the fast Fourier transform to convert it into simulated X-ray pictures. The data set that this picture was generated from was downloaded from this webpage at Stanford, and consists of CT scan data of a cadaver. The basic code works! Given a bit more work, I should be able to do arbitrary orthographic views.

The math for all this is described quite admirably by Tom Malzbender’s paper Fourier Volume Rendering.

Addendum: Here is the raw data slices:



Addendum2: Here is a link to some more interesting volume datasets.

Addendum3: Here’s my attempt at rotation. It doesn’t really work right yet. I think I understand why.



Compromising Reflections

Saturday, August 8th, 2009

I’ve been interested in TEMPEST and related technologies for a while. Here’s another link to another paper:

This project investigates a novel eavesdropping technique for spying at a distance on data that is displayed on an arbitrary computer screen, including the currently prevalent LCD monitors. Our technique exploits reflections of the screen’s optical emanations in various objects that one commonly finds in close proximity to the screen and uses those reflections to recover the original screen content. Such objects include eyeglasses, tea pots, spoons, plastic bottles, and even the eye of the user.

We have demonstrated that this attack can be successfully mounted to spy on even small fonts using inexpensive, off-the-shelf equipment (less than 1500 dollars) from a distance of up to 10 meters. Relying on more expensive equipment allowed us to conduct this attack from over 30 meters away, demonstrating that similar attacks are feasible from the other side of the street or from a close-by building. We additionally establish theoretical limitations of the attack; these limitations may help to estimate the risk that this attack can be successfully mounted in a given environment.

Compromising Reflections

Single Lens Stereo with a Plenoptic Camera

Wednesday, August 5th, 2009

While re-reading Ren Ng’s paper on light field cameras, I saw reference to a much earlier paper by Adelson and Wang. I added it to my growing collection of Google Docs for later reference.

Single Lens Stereo with a Plenoptic Camera

Loren posts Vol Libre on Vimeo

Wednesday, July 29th, 2009

A few days ago, I posted links to a couple of videos that used fractal rendering techniques. One was the Genesis effect of Star Trek 2, Wrath of Khan, the other, a 4KB demo contest entry. My intent was to show how computer graphics have evolved over the past 25 or so years. But the reason I chose the Genesis effect was that I couldn’t find an online copy of a work called Vol Libre, Loren Carpenter’s 1980 film. I bump into Loren occasionally at lunch here at Pixar and mentioned it in passing.

I don’t know if this is a coincidence, but today on facebook, he announced that he had uploaded a copy of it to Vimeo. Thanks a bunch Loren! Sit back and enjoy the vintage computer graphics from a true CG pioneer, and you’ll probably be shocked to find out how similar it is to stuff you’d see in the modern “demo scene”.

Vol Libre from Loren Carpenter on Vimeo.