Domain: red3d.com
Stories and comments across the archive that link to red3d.com.
Comments · 35
-
Re:Serves them right
Sorry, it isn't (necessarily) really a collaborative effort. It's just that each side is so totally focused on the short term that when they get in their focus is on "extending our political power". So it's *as if* it were a collaborative effort.
See flocking behavior in artificial life simulations. (e.g., "boids" http://www.red3d.com/cwr/boids/ )
-
Re:Tube classics
Depends on the kid. Some 11 year olds have PhDs and others have a very narrow, but precise focus that makes them experts in a very small area. Get him something current, concise, and the hardware to work with. StackOverflow is the one of the best resources for programmers and leads to just about every resource you could ever need.
The first question you should ask is what do you want to accomplish? If it's "write a game" expose him to Unity or XNA. The best language to use for that is C++, but there are far more programmers that use C#, Java, or Objective-C. Python isn't a bad suggestion. It runs Eve Online.
Artificial intelligence might win him some science projects. This algorithm for flocking is surprisingly simple and not out of reach for someone new.
If he wants to make physical objects using programs, consider getting a makerbot and writing software that generates mathematical objects or just print cool stuff like quadracopters and robotic hands.
-
What's new here?
-
Re:Not that simple - reinventing queueing?
Queuing theory has been around for ages. Even Robots traveling at a constant speed would not resolve the problem, since eventually, due to statistical fluctuations, there would be collisions. Robots programmed to stay a constant distance from each other would eventually start to slow down and speed up. (Again, due to statistical fluctuations.) Slowing down is more apparent in the corners (turns), but a "corner" may be as subtle as a lane change. In real life, a big contributor to the problem is that traffic tends to go slower than the speed limit, but is less likely to exceed the speed limit in order to make up for a previous slowdown fluctuation.
In Houston, the morning traffic is trying to diffuse into smaller capillaries such as streets and parking lots. Cross streets or cross traffic requires that the real average speed be much slower than the max posted speed. The traffic feeding into the city exceeds the capacity of the capillaries to diffuse the traffic to random destinations, and this causes backlogs that flow further "upstream" during incoming rush hour. Compressed-time photography actually verifies this effect. (There is a dynamic model somewhere, but I can't find it right now.)
Recently /. posted an article on aircraft boarding, which is a problem in the same category as traffic flow. A few years ago a friend of mine was a cameraman at a baseball "goodwill series" in Japan. He commented that there was no trash anywhere in the stadium. At the end of the game the spectators rose up and applauded the players of both teams. Then they sat down and exited the stadium row by row..and took their trash with them!
I imagine a city in the future where all traffic goes in one direction, say counter-clockwise, and roads and streets use a multiple spiral instead of cross streets. Emptying the city would require that citizens "queue up" for their slot in the flow, and fuzzy logic manages the merging problem.
Imagine designing an airport where the landings and takeoffs were spaced by a program such as "Boids" ( http://www.red3d.com/cwr/boids/ ) and all the traffic followed the same counter-clockwise spiral. True, terminal design might require elevators like an aircraft carrier has, and there would be some cross-over ramps and taxiways, but an open airport could accommodate a lot of aircraft more safely and could have a two- or three-hour "reset" each night to make up for the statistical variations.
Nice article, BTW. -
Boids
Craig Reynolds was doing this many years ago: http://www.red3d.com/cwr/boids/
-
boids?
Isn't this 'boids' again?
http://www.red3d.com/cwr/boids/ -
Boids
Boids was a program written to try to simulate the flocking behavior of birds. It was written by Craig Reynolds
Reynolds gave his boids 3 rules:
1 Don't crowd too close to other boids
2 Try to go the same direction as other boids near you
3 Try to be in the average position of your local neighbors.
With just those three simple rules, the boids arranged themselves in a flock. Much to Reynolds surprise, without any more rules than that, the flock exhibited other emergent behavior, such as a flock that split up to go around an obstacle would rejoin.
More at: http://www.red3d.com/cwr/boids/ -
Re:LIberalism/Libertarianism *isn't* simple
Lets take a flock of birds as an example. The flock itself is a complex, dynamic and extremely confusing system but the rules which govern that behaviour are very simple.
http://www.red3d.com/cwr/boids/ [red3d.com]
It's a similar principle with libertarianism, the result is emergent behaviour.
Come on. You don't seriously think you can take one small tenet of a bird's behaviour, and apply it to the whole of human society, do you? It just doesn't work! Whilst it may be good for the whole flock for each of them to behave in such a way that they fly together, you can't extend that principle to all human behaviour. If I want to rape someone, that desire may well overcome any perceived benefit to the 'flock' of not raping someone, without further preventative measures in place. -
LIberalism/Libertarianism *isn't* simple
The fundamental concept of it is simple, and easily understood, but the the effects of it are complex, profound and clearly difficult to understand.
Lets take a flock of birds as an example. The flock itself is a complex, dynamic and extremely confusing system but the rules which govern that behaviour are very simple.
http://www.red3d.com/cwr/boids/
It's a similar principle with libertarianism, the result is emergent behaviour. The difference between socialists, conservatives and libertarians is that socialists and conservatives think the best way to run things is to put the flock into a box. -
Re:AI needs a 3d environment to work
You're right. We need 3D AI. What you're talking about has been done, and development continues. Mostly in the game world. The classic paper is Craig Reynolds' "Boids", which introduced flocking behavior. That's simple to implement, and worth trying to get a feeling for the strengths and limitations of field-based behavior.
The Sims uses field-based behavior, and gets rather impressive results with it.
So there is progress. It's slow, but we're way ahead of where we were ten years ago. Language-based AI has been more or less stuck since the 1980s, but 3D AI is plugging along.
(Reading your "AI page", I note that what you think is needed is a "3D camera". Those exist, both as stereo devices and as time-of-flight devices. You can even make one from two webcams and the stereo software in OpenCV. But a depth map is just the first step.)
-
Re:Apples and Oranges
It depends on how sophisticated you want their formation flying to be. If the rules are A) Stay together, B) Don't crash into anything, and C) Seek some goal, simple emergent behavior can do remarkablly well. Craig Reynolds' Boids algorithm, developed in 1986, is an amazingly simple way to do it.
I'm not saying that flocking in the real world, even in "empty" space, isn't a remarkable challenge, but there are sometimes simple ways to create compex coordination. Marco Dorigo's ant colony optimization routines are another example.
I'm fascinated by this stuff. Jon Klein's open-source Breve simulation environment downloads with some great examples, and it's a great platform for wiring your own.
-
Re:Intentionality ?
Intentionality doesnot necessarily require what you call "thought".
Intentionality, as you describe it, doesn't require anything but a simple feedback loop.
Can you write such a program ?
I have written many such programs, but not for many years, and I don't care to start over now... and there's so many examples online it would be quite redundant. As luck would have it, I've found a page that not only goes into detail about programs that demonstrate the same class of apparently "intentional" behaviour as a virus, but also includes a reference to an early movie produced using artificial life techniques. -
Re:Genetic Algorithms
http://www.red3d.com/cwr/papers/1994/alife4.html/
A great introduction article to genetic algorithm being applied in the game of tag. -
Real boids?
I wonder if they base their algorithm on Craig Reynolds' boids?
-
Re: No Disclaimer?
-
Craig Reynolds is also well known in game AI fieldThe author of the review, Craig Reynolds, is also very well known in the field of game AI. His Game AI web page is a fun resource.
BTW, definitely the most fun job I ever had was doing game/VR AI for Nintendo and Disney while at Angel Studios. I *really* recommend trying to work in the field for a while because it pulls together so many things: creativity, working with non-computer science team members, lots of interesting CS problems to be solved, etc.
-Mark
-
Re:Massive look-a-like?The techniques behind Endorphin could indeed be incorporated into a crowd simulation system such as Massive. But it should be stressed that Endorphin draws from a field of research established by many people across the world.
There already exists a sizable body of work on mixing artificial life with rigid body dynamics. Even back in 1994, people like Karl Sims were evolving their own rigid body creatures
You also want to check out Craig Reynolds (who also did lots of work on flocking)
One of the toughest challenges Natural Motion face is integrating their software in existing VFX pipelines. Many Slashdotters will already know that Linux is the OS of choice in the world of cutting edge visual effects. One issue is that Endorphin is Windows only, meaning an additional box must be placed under the operator's desk.
A more serious problem is that you cannot create your own virtual stuntmen - you have to rely on the skeletons, physiques and behaviors they supply (you cannot evolve or construct your own.) When Endorphin was first released, you needed a seperate piece of software (for example, MotionBuilder)to retarget the motion from Endorphin back onto your own characters. Thankfully though they have now implemented their own "dynamic retargetting" algorithms which smooth the workflow considerably.
To integrate it into Massive, they would need to expose the Endorphin engine as a set of libraries. However, from what I understand, Endorphin was designed from the ground up to be a stand-alone application. That after all is Natural Motion's business plan. One then wonders how easy it would be to expose an API, considering the software was never meant to be integrated into another package at all.
In its current form, Endorphin is really good for quickly generating libraries of variations which can then be fed into more traditional motion blending engines. If for example you have a crowd of people who are all falling to the ground, it can be prohibitively expensive to motion-capture enough variations to make it realistic. But with Endorphin, you just perturb the forces applied over and over again. In the end, that's their market - others are free to draw upon the underlying body of research and implement their own systems.
-
Re:Close, but different
Here is a page that beats the topic of computer cartoon and 3D sketching to death:
http://www.red3d.com/cwr/npr/ -
Lambda is lambda is lambda....Someone already mentioned McCarthy's Recursive functions paper. I want to point out some papers building on his work (and I consider these to be some of the most important papers in programming language research):
SCHEME: An Interpreter For Extended Lambda Calculus, Gerald Jay Sussman and Guy Lewis Steele, Jr, 1975. This paper introduces the concept of the closure, unifying the concept of object-oriented programming with lambda-calculus inspired semantics. It also provides a very interesting interpretation strategy (and Steele's subsequent work on the Rabbit optimizing compiler goes even beyond this). Scheme is probably one of the most important languages ever devised (some claim it was "discovered").
LAMBDA: The Ultimate Imperative, Guy Lewis Steele, Jr. and Gerald Jay Sussman, 1976. Introduces Continuation Passing Style, and provides a (surprisingly clean, elegant) mechanism for expressing all primitive imperative operations in terms of pure lambda-calculus semantics (introducing the modern concept of functional programming languages). Also includes a very insightful section on various argument passing techniques.
A correspondence between ALGOL 60 and Church's Lambda-Notation, Peter J. Landin, 1965. This is one of the primary influences on the development of Scheme. The J-operator goes on to become call-with-current-continuation. ALGOL goes on to become the single most influential programming language ever (lexical scoping, Backus-Naur Form, and ALGOL's syntax are all widely used today).
Something more on the light side, I think Craig W. Reynold's Boids paper and mechanism was pretty important in computer graphics. Nowadays, most crowd mechanism (including Weta's Massive) use essentially the same approach.
-
related links (NPR)
For some links related to Andrew Glassner's topic, see this section on Non-traditional perspective (for viewing and modeling) in "Stylized Depiction: Non-Photorealistic, Painterly and 'Toon Rendering"
-
Boids
Boids are fun, and used in Batman Returns, The Lion King and a lot of other movies to simulate flocks and flock-like things.
-
Genetic Algs, Boids and artificial life
When I read the article, it immediatly made me remember the Boids which are a computer model of coordinated animal motion such as bird flocks and fish schools, first introduced by Craig Reynolds. Those where an example of emergent behaviour, where a bunch of independent moving things start moving in a coordinated way thanks to some "local guidelines" controlling their behaviour.
So, if every thing (boid) is telled to steer to avoid crowding local flockmates, steer towards the average heading of local flockmates and steer to move toward the average position of local flockmates, they start to move as a flock (!).
This approach of obtaining a more developed behaviour in an automatic (more accurately in an "emergent" way), is a lot related to genetic algorithms (GA) evolving an animation model, 'cos is exactly the opposite approach: In the first one the designer must specify the underlying mechanisms that permits the animation, while in the latter the designer must specify the result that is desired.
What I found more appealing of GA's approach is that the system can outperform the initial specifications, as is noted by a lot of papers in ALife. Some have developed an artificial world (in the paper linked above is named "Geb") where individuals can develope a (eventually) coordinated behaviour to survive (the fitnness function is an implicit
"survive function").
What would be cool is to use GA in a pre-determined way to evolve (in a explcit way) the basic behaviour that construct the coordinated mass beahaviours (like boids' flocking).
--krahd
mod me up, scottie!
-
Genetic Algs, Boids and artificial life
When I read the article, it immediatly made me remember the Boids which are a computer model of coordinated animal motion such as bird flocks and fish schools, first introduced by Craig Reynolds. Those where an example of emergent behaviour, where a bunch of independent moving things start moving in a coordinated way thanks to some "local guidelines" controlling their behaviour.
So, if every thing (boid) is telled to steer to avoid crowding local flockmates, steer towards the average heading of local flockmates and steer to move toward the average position of local flockmates, they start to move as a flock (!).
This approach of obtaining a more developed behaviour in an automatic (more accurately in an "emergent" way), is a lot related to genetic algorithms (GA) evolving an animation model, 'cos is exactly the opposite approach: In the first one the designer must specify the underlying mechanisms that permits the animation, while in the latter the designer must specify the result that is desired.
What I found more appealing of GA's approach is that the system can outperform the initial specifications, as is noted by a lot of papers in ALife. Some have developed an artificial world (in the paper linked above is named "Geb") where individuals can develope a (eventually) coordinated behaviour to survive (the fitnness function is an implicit
"survive function").
What would be cool is to use GA in a pre-determined way to evolve (in a explcit way) the basic behaviour that construct the coordinated mass beahaviours (like boids' flocking).
--krahd
mod me up, scottie!
-
Re:Time for publicly funded politicians?
And the Industrial Revolution was so damned good to all the steelworkers and miners. Who doesn't love a good case of black lung?
I believe that corporations are inherently dangerous. The thing you are missing is that corporations, while made of people, don't act with the motivations and good-will of people, generally. Like mobs and flocks, they exhibit the property of emergence , that is their behavior is a complex interaction of the behavior of the parts. You get 1000 decent persons together with 1 rock-throwing asshole and you can have a dangerous mob on your hands.
In other words, they take on a life of their own. Your sweet little Industrial Revolution, while having some good results, was rife with corporations stepping all over the little guy because doing so benefited the corporation.
You're right about us being dependant on corporations which makes it all the more important that they answer to the people as a whole. It's short-sited to say they are neglecting the rights of the employees and customers. A corporation loved by its employees and customers can still be fucking the people.
The problem is not whether or not the executives are focusing on the quarter. The problem is that the executives no longer feel they have to answer to anybody. Look at Enron as an example. Their attitude is fuck the people, I'll get my millions and get away scott free. And they are doing just that -- in part because they've dooped people like you into taking up for them. They've conned you into believing that because they give you so much, you owe them defference. Screw that. If more people stood up against them, we could have corporations that give us more and do so without fucking us in the same move.
You've basically sold out for a washing machine, air conditioning, and plastic goods. -
Brooks, ants, and all thatI don't see what's so impressive about this, except that this guy built a large number of dumb bots. We've known about flocking behaviors for years, since Craig Reynolds did the original boids animations in the 1980s. It's neat that someone finally built enough bots that those behaviors appear with real machines, but it's not original.
There's a lot happening in mobile robotics, but the action is with the smarter machines. DoD is pushing hard on this. Look up "Demo III" and "XUV".
-
Didn't NOLF2 implement something like this already
If I remember correctly the AI in No One Lives Forever 2 is like this, on an in-mission level anyway. Sure, the overarcing plot is scripted but in the missions it is a different story. The badguys' AI aren't script based, instead behavior based.
It actually reminds me a lot of Flocking Behaviors and Boids except that the number of behaviors is increased (as the badguys, smoke, sleep, wander around, get coffee, get curious, search hiding places, etc) and the size of the flock is reduced (most badguys are solo but have intercommunication behaviors).
In the end: more autonomous AI therefore more variations to play. -
Re:Vehicles is a classic
I too read Vehicles a long time ago and found it inspirational. My work on steering behaviors was strongly influenced by Braitenberg's book. -
Re:Multiagent Systems
In case you are interested, I have a somewhat dated list of such models.
-
Re:Here's another great link
This one is my favorite. You can watch the flocking boids, and it explains flocking algorithms very clearly and easily.
Plus, it's got links to about 50 other really interesting biological modeling and application sites.
-
Re:This is game AIThe classic game with a "pheronome" approach was SimAnt, which explicitly worked that way. There are other games that have a similar system internally, but don't make the trails visible to the player.
If you combine trail-making behavior with flocking and related field-based behaviors, you can get results that look semi-intelligent, even though the underlying algorithms are quite dumb. The field-type behaviors result in reasonable low-level movement in the presence of obstacles, while the trail-making system provides map-like information from successful movement. You can do a halfway reasonable battle simulation like that. It will look good from a distance, at least.
-
But still
Yeah, so it's a repeat, but it's still a great technique.
Having played with it, and with writing custom renders, I can say that the SDK is really great. It's found here.
For more great NPR eye candy and programming stuff have a look at this good intro to toon rendering, this NPR site or indeed this or this demo of cell shading.
For anyone else who, like me, likes GFX programming for fum but is tired of working on an OGL engine that just ends up like everyone else's, this is a pretty cool feature to try and implement. -
NPR
Non photorealistic rendering is a very cool field of graphics, if that's what these guys are doing. For more info on the technique, check out this google-attained page here.
For fleeting minutes, one of the games I considered creating in this very past year was a Zelda-type game where the models are cartoon NPR-rendered but with a richly detailed Street Fighter World Warrior type colourful background.
This doesn't seem too far from that. I think M[ia]moto (sp) is using his instincts on this one.
-
Some links for the interested...
Non Photorealistic Rendering is very cool indeed.
Nvidia's website has some demos on how to do sketch rendering on their hardware. Intel have done some pretty cool research on sketch rendering and cartoon rendering.
This page has a lot of good links. Check any recent Siggraph set of proceedings as well.
Most current techniques seem to involve "thresholding" the Lambertian diffuse lighting equation, so banding the colours used, or using that as in index into a 1d texture map which contains the different shades used for a model.
Hmm. Check the websites above for a better explanation than that :)
Henry
-
Cartton Renderer Info
If anyone is interested in non-photorealistic-rendering techniques, check out these link:
http://isgwww.cs.uni-magdeburg.de/~nick/realtimeNR R/realtimeNRR.html
and
http://www.red3d.com/cwr/npr/
-
Misguided art direction; NPR and the future
I haven't actually seen the movie yet, but one of the things that turned me off when I saw the trailer was the glaring incongruity between the character art and the computer-rendered backgrounds.
Like many other animators before them, the folks at Bluth's studios appear to have fallen victim to the blind pursuit of the so-called holy grail of CGI: photorealistic rendering.
Because computer-generated imagery is still very much in its infancy, many people mistakenly assume that the ultimate goal is to be able to generate images that look absolutely true-to-life. Yes, that can be one goal of CGI, but that should definitely not be the only goal.
Artists in traditional media have long eschewed realism in favor of stylized renditions of reality, usually to better emphasize certain features or emotions better than realism would allow. If photorealism were the ultimate goal of visual art, then hand painting would have simply become obsolete when photography was invented.
Fortunately, some people are busy doing research on techniques and algorithms that can be used to coax non-photorealistic images out of a computer renderer. This newly emerging field is called non-photorealistic rendering (NPR), and it has already been used very successfully in commercial efforts, most notably the television series Futurama (which uses a specific NPR technique called cell shading). I for one was extremely impressed the first time I saw those great smoothly-animated (but still cartoony-looking) 3D ships flying through space in the very first episode of Futurama.
Fortunately, the future of NPR looks very promising. Adventure Gamer has a short but informative article on the state of NPR in adventure games. The site also has a preview of an upcoming game called Runaway, which makes extensive use of NPR for character art, and looks absolutely stunning. Download the runaway trailer, and prepare to be flabbergasted by what you see. (Yes, it really is 3D rendered!)
It's too bad it didn't occur to Bluth that attempted photorealism in the background art would look just plain silly next to hand-animated characters. I guess they were just pushing for the "Wow!" factor; the average Joe Sixpack is more impressed by flashy freedee 'puter graphics than he is by the seamless and immersive environments than NPR can afford.