Friday, March 24, 2006

Maurits Cornelius Escher

There's a possibility you don't recognize the name of the artist of the post title, but it's very unlikely you haven't seen any of his works.

M.C. Escher is, without any doubt, one of the most famous graphic artist of the last century. And he is specially fascinating for those interested in maths, programming and computer graphics (I have to say that one of his prints is decorating the most important wall in my living room).

Visit his official web site in order to learn more about this artist: www.mcescher.com

Why is he so fascinating for a programmer and computer graphics lover ? Just see two of his prints...





Concepts like recursion and fractal geometry are an important constant in some of his works. Iterative patterns, recursive definitions, morphing (smooth transition between images), chaos, fractal geometry and lots of computer science topics are part of Escher's incredible mind.

Another important part of his work was centered in the creation of so-called impossible drawings. But some of them seem not to be so impossible. A good work presented by Gershon Elber shows us how to create 3D models that, from specific points of view, are able to explain some of these impossible drawings. It is worth to see.

As an example, below you can see some computer generated models that are able to explain some of his famous drawings.

(if you have bandwidth problems, watch all the video until the end, and press 'play' again; normally the cache is going to help you the second time)







Finally, a demonstration on his influence in our time in a very beautiful advertisement:

Monday, March 13, 2006

Real-time physics

Not too far ago, there was no 3D accelerated cards. It was the CPU the only able to make 3D graphics a reality. Now, nobody is even able to buy a PC computer without such a possibility.

But gaming industry needs go beyond, and once again, not only this industry but every field in computer science is going to take the most of this new need.

I'm talking about real-time physics.

But firstly, some background. What's real-time ?

An operation within a larger dynamic system is called a real-time operation if the combined reaction and operation time of a task is shorter than the maximum delay that is allowed, in view of circumstances outside the operation. Wikipedia definition.

In computer graphics, this is very related with interaction. Real-time means that we are able to provide an interface to the user, in which he/she can interact and get a graphical response with the same rate as the real world we are trying to simulate, i.e., no more delay we get from the real world. Simple to say, quite difficult sometimes to achieve.

Real-time used to be associated with geometry simplification and LoD techniques (Level of Detail). It still is, but recently we have to take into account one new element: physics simulation.

A physics engine is a computer program that simulates Newtonian physics models, using variables such as mass, velocity, friction and wind resistance. It can simulate and predict effects under different conditions that would approximate what happens in real life or in a fantasy world. Wikipedia definition.

Obviously, for real-time physics it is required to simplify its calculations and/or lower their accuracy in order to respond at an appropriate rate for interactivity.

The need of real-time physics is so important, that we are going to see the launch of specific processing units (the same that happened with 3D acceleration). See this ageia web site and look for PhysX.

Summary. Always an example is the best we can do to understand concepts. In the following video, we can see a water simulation. In this case, we don't speak about real-time, so it is possible to calculate this simulation without losing accuracy.

(if you have bandwidth problems, watch all the video until the end, and press 'play' again; normally the cache is going to help you the second time)



And now, something in real-time. In this case, a preview of what the new PlayStation 3 is going to offer us:



Very impressive !

Thursday, March 09, 2006

Ultra-Mobile Computer = Origami Project

Today, Intel and Microsoft have launched the Ultra-Mobile Computer, called Origami Project by Microsoft.

We can enjoy at Microsoft web site with two models, from Samsung and Asus.

The web site of the Origami Project is http://origamiproject.com
The web page at Microsoft site is http://www.microsoft.com/umpc
The web site of Intel's Ultra-Mobile PC is http://umpc.com

At these web sites you can get all the information about them. Here you can see another video of the 'new' concept, from Intel:

(if you have bandwidth problems, watch all the video until the end, and press 'play' again; normally the cache is going to help you the second time)



Is really something new ? It isn't. It's a litter Tablet PC with XP Tablet Edition 2005. But it seems can have more success than current Tablet PC machines.

Monday, March 06, 2006

Kid's Programming Language

Computer science is an essential subject in our children education. We are surrounded by computers and software, and because of that we have to be sure our children are prepared to work and interact with them.

But, is it possible to fully understand the basis of computer science without learning how to program ? It isn't, in my opinion.

Many, many times I have spent a lot of time trying to explain why a computer can or cannot do this or that ... and the problem, frequently, is the lack of knowledge about programming of my audience.

To learn programming is to understand what computers really understand.

And it is generally a difficult process, since the current programming languages need strong skills from the very beginning.

Because of this complexity, a lot of alternative methods for learning how to program have appeared. I remember perfectly two of them.

The first attempt to make programming closer to people was logo (see more information here); a fantastic approach, based on Lisp, that uses a graphical turtle in order to see the results of our programs. In my opinion, it was (and it is) the best first approach to programming for kids.

I also remember Karel the Robot by Richard E. Pattis. In this case, we can control a robot which is able to get information about the environment and carry out actions like collecting things and moving around. Originally based on Pascal, now there are C based versions.

We have recently a new alternative: the Kid's Programming Language.



I have downloaded it, and it is basically a BASIC inspired language. It has some strong points: very easy interface, .Net based, automatic conversion to C# and Visual Basic, and a very comfortable graphic library. This graphic library is perhaps the most interesting feature, since with it we can see immediately very impressive results on screen.

It is well-known how boring 'console based' applications are, so to have the chance to produce very attractive graphics with just some lines of code it's something that guarantees success.



A future characteristic of this programming language is 3D graphics. With this new feature, this language could be also a very interesting first step in computer graphics introduction.



A very good introduction to mini-languages as a first step in learning how to program can be consulted in here.

Friday, March 03, 2006

Microsoft Windows Vista - The same story again...

Windows Vista is coming and, once again, Microsoft is going to sell us old ideas as something new. A lot of changes and improvements are going to be part of this new OS, but it is probably Aero (the new desktop environment based on Avalon, called now Windows Presentation Foundation), its new graphics layer and environment, one of the most important features.

Transparency, 3D elements, xaml (a new xml based language for interface designing)... are just some of these new characteristics. Are they new ? Obviously, no. Mac OS has had some of these new features for a long time, and Linux has now packages that improve its environment with similar or even better possibilities (Xgl for example, from Novell).

As an example, in the following video, you can see a demonstration of Xgl (thanks to Jordi Vicedo for this information). It's a bit long, but it's worthy.

(if you have bandwidth problems, watch all the video until the end, and press 'play' again; normally the cache is going to help you the second time)

Wednesday, March 01, 2006

New toys are coming this year ...

I cannot avoid to enjoy with new technological toys, and this year we are going to have the chance to see some new developments that are able to surprise us again...

At the web you can see some very interesting cutting-edge devices that seem to be available very soon.

Here, something called Origami. It's not actually a new concept, but they offer some new ideas...

(if you have bandwidth problems, watch all the video until the end, and press 'play' again; normally the cache is going to help you the second time)



Nintendo is almost everything in games... not only because they produce the best games in the market, but because their capability in introducing new ideas. This year seems to be the year of Revolution. Forget your old and limited joystick or pad ...