Tuesday, February 28, 2012

Trust The Cuckoo

You and I—we're neighbors.

I can see that you're here.

Does this bother you? Are you worried? Don't be. But this illustrates an incredible principle about today's world. Everything is built on trust. And that trust is very fragile.

Your computer is constantly downloading programs and files that were written by people you've never even met. And you're okay with it! "As long as it doesn't hurt me," you say. Unfortunately, it can. People can. If you let them. 99% of the hacker's successes in "The Cuckoo's Egg" came from user oversight (e.g. a password written in an email, default system passwords left unchanged). Here's your reminder: Be informed. Don't put information on the net that you wouldn't mind showing up on someone else's computer screen. "Oh be wise, what can I say more?"

Thursday, February 16, 2012

Oriented Granule Population

I figured it's about time that I post something relevant to FX, graphics, and simulation. Without giving away too much, I wanted to post some preliminary photos of the research I've been helping Seth Holladay with here at BYU. His work centers around efficient granule simulations. This particular portion of the problem relates to the need for granular level detail in a render as opposed to a displaced surface.

For the layman, I'll explain. Most ground surfaces, even in movies, is done like this:

This is great in most cases, but what if I want to get really close to the dirt and see individual pieces? Ever see Spiderman 3?

Well, in order to put all of those sand particles onto the sandman's skin, the artists had to instance thousands of particles and then pack them in so they would look right. Our research eliminates that process and instead instances the granules right on the surface (which can also be used in a Level of Detail situation at render-time based on camera distance from the surface, but that's another story). The process of instancing the granules onto the surface is simple, but can basically be explained in 4 steps. I won't give great detail here, but a trained eye ought to be able to pick out what's going on from the photos. You can get the details from Seth's paper once it's published.

1. Instance Granules within a volume.

2. Resolve Granule Penetrations.

3. Delete Out of Bounds Granules.

4. Settle Granules with a few steps of Gravity.

I hope you enjoyed the sneak peek! I'll most likely post more on this topic as we make some more progress.

Intelligent Everything - Mass Collaboration

Why does life run in real time? (And yes, I am serious.)

The greatest super computer on earth would take more than a week to run a physically-precise simulation of millions of sand granules falling through my fingers, but it happens naturally in an instant. Without going into the philosophical or religious details, it appears as though each particle knows how to react to everything around it. (You're thinking, "Did he just imply a grain of dirt is intelligent?" Yup. And they're pretty good at what they do too.)

There are a host of subjects I'd love to discuss about that doctrine, but I'd like to prove just one thing at the moment. The tools for solving the world's toughest problems may no longer be super computers. According to the NY Times todays fastest super computer is "able to make 8.2 quadrillion calculations per second, or in more technical terms, 8.2 petaflops. The performance of [this super computer] is equivalent to linking around one million desktop computers, Mr. Dongarra said." Only a million? Come on guys...we already hit the one billion PC mark back in 2008, not to mention recently surpassing something like 150M smartphone users...

What if large simulations or other tasks could be decentralized and farmed out to each of these users? Graphics aficionados already know the importance of parallelized processing, but let's take it a step farther. Conceptually, give each particle its own set of rules, processor, and access to communicate with the nearest 10 particles around it. Sure, the method has a unique set of problems, but nothing innovative comes easily. Gamification, crowd sourcing, and social networks are already conceptual proof of the idea. I want to see it done.

Tuesday, February 14, 2012

Teaching Through Innovation

I pose to you today the conundrum of education: How do you present decades of information to a student so they learn the critical principles of a subject but question that learning enough to explore new ideas? I'm a Computer Science major, and much of our learning takes the form of lengthy programming projects contrived by the professor to teach a principle well-known by industry professionals. The following is an alternative approach to teaching these principles as well as real-world problem solving skills.

Give students a unique real-world problem to solve (or let them find their own if they are capable.) The problems posed to students may be in a similar realm of study (e.g. web security, social communication, mobile-programming, computer graphics, etc.) giving the professor opportunity to teach current industry practices. Students' grades would be based on the performance of their end product and an explanation of their methodology.

Teaching students to innovate is especially important in the fast-paced world of technology where anybody can be the first to do anything. You can do anything given the chance, and I'd be really interested in seeing what a group of college undergrads could come up with.

Tuesday, February 7, 2012

Chasm Clouds

As a side note to those of you who check my blog for FX related items, I've been doing a lot of research into Volumetric Rendering and simulation with Houdini. I've posted my findings thus far on another private blog, but I'll repost them sometime soon here so they are available to everyone. If anybody would like to help out with this sort of thing, please let me know! Thanks!

Monday, February 6, 2012

Mass Problem Solving

We Solve For X. What an interesting idea. In a world where collaboration has become commonplace, and networking with individuals across the globe is RIDICULOUSLY simple, could we encourage the general public to use it to solve real world problems? I mean, Angry Birds is great and all, but I want to do something REALLY meaningful with my time. Not only that, if I come up with a great idea, I want it to be MINE and get recognition (and hopefully some money) for it!

Aside from this guy's sweaty armpits and lack of finesse in describing these ideas, this video is indicative of what I hope people could achieve together in the next 10-20 years. I'd encourage you all to check out www.wesolveforx.com and see what it's all about. Not for you? Just wait 10 years, and I bet you'll be surprised at the new social networks that crop up...