Search Home Members Contacts
About Us
Products
Downloads
Community
Support
Pages: [1] 2
  Print  
Author Topic: Artificial Life Simulations  (Read 9109 times)
dolmsted
Customers
Community Member
*****
Posts: 119


« on: September 20, 2004, 03:54:25 PM »

In the hope that 3D engine designers and users of those engines will get interested in supporting artificial life simulations I would like to outline some future possibilities.

The Serious one:

The brain is the final frontier in term of knowledge acquisition. Nothing else is so close yet so mysterious. It is an unclocked system meaning that finite state machine theory cannot describe it since the brain has no discrete states detectable by iteself. A sustained effort following the course of evolution could unlock it secrets and provide insights into the cause of mental illness. The brain needs to exist in 3D space since chemical diffusion affects the various neuron parameters and that effect needs to be investigated as well as the circuit design.

The frog brain consists of 16 million neurons with almost a 1/3 of that being in the spinal cord. Considering that much is probably redundant and that the resolution of the senses and muscle control can be reduced I would think that no more than 1 million neurons would need to be simulated. This is can surely be accomplished by the personal computer.

The fun one.

How many people would like to design a virtual creature and have it compete against other virtual creatures? We have all seen these battle bot exhibitions live or on TV but you can do more in virtual reality. Or if not a direct competition then a competition to see whose animal survives the longest in a certain environment designed by other 3D hobbiests. One could even run a simulation so that it covers several generations of animals. Another possibility is to iintroduce catastrophes to see how the animals react.

The brains for these virtual animals could be constrianed to realistic neurons, to neuron like elements or they could be unlimited allowing all the various A.I.alogorithmic techniques.
Logged
excaliber
Community Member
*
Posts: 253


« Reply #1 on: September 20, 2004, 04:17:10 PM »

Im no brain expert, but know a little.

Basically, there is no good way to simulate the brain, as we don't know how it works.  Even our Artificial Neural Networks are crude approximations.  Research is starting to show that learning is not done through connection weights, as our ANN's use.  This shows that our current theory is incredibly flawed.  Until we know more about what is going on, I'd say it would be very difficult to model a simulation.

With that said, the ANN's today can do some remarkable things.  For 3D artificial life, have a look at http://www.frams.alife.pl/

Smiley
Logged
dolmsted
Customers
Community Member
*****
Posts: 119


« Reply #2 on: September 21, 2004, 06:21:38 AM »

You are right Excaliber. No theory yet published describes brain function and that has really limited peoples ideas. That is why the word "artificial" has been put before existing types of neural networks and intelligence techniques. They are no where near real neuron function.

That is not to say such a theory does not now exist. This is the abstract of a paper that I have submitted to the journal "Information and Computation" (they take a year before they even begin to consider it. I guess not much time critical info is expected from theoretical work).

-----------------------------------------

Causal Asynchronous (Non-Clocked)  Information Processing  

Abstract

Presented is a real time information processing theory not requiring the use of a clock signal to define discrete states. Examples of such systems include the brain (the main focus of this paper) and the physical universe. The other existing information processing theory as given by finite state machine theory only defines the sequence of discrete states leaving the characteristics of state transition unknown and undefined. In contrast causal asynchronous information processing theory works directly with causality by characterizing and identifying the most probable state transitions.

State transitions are equivalent to probability events and are represented by mathematical impulse signals. Since the precision of any probability value is built up from a repetition of events the full system signal is composed of a train of impulses. Consequently, the impulse train signals are able to represent both dimensions of probabilistic uncertainty after the signal has been normalized. Since states can be mapped to meanings this theory unifies probability and logic within an information processing context by showing how a generalized two-dimensional analog logical truth and validity value are symmetric to probability’s two dimensions of uncertainty (probability value and precision value). The result is a generalized set of connective logic operations.

Under certain conditions all but one of these generalized asynchronous logic operations can reduce to the multi-valued (fuzzy) logic definitions but with a truth value range extending from “true” to “indefinite” instead of from “true” to “false”. Because impulses take up no time they cannot interact directly so signal interactions must occur via their dual time-dispersed signal form which in this case turns out to be the dynamic Erlang impulse response function which is very similar to the actual neuron response function. The result is a system that can propagate complex uncertainty characterizations. Evidence is presented for probabilistic asynchronous logic operations existing in the brain. Also presented are confirming computer simulations of all connective operations and the decision gate circuit that selects the most probable state transition. Finally the common introductory derivation of the Schrodinger quantum mechanical equation is given a rationale based on this theory.

--------------------------------------------

So what I am doing now is learning how to program in 3D in order to test this theory in a dynamic environment. So far everything works as expected but the real meat of the theory hasn't been touched yet (its handling of uncertainty but that will only manifest itself on the tough problems that requires some intelligence to solve).

The amazing thing in my mind is the linkage between what started out as a brain theory and quantum mechanics. As I was developing this theory I kept noticing how similar the concepts of state probability was to that used in quantum mechanics. The linkage was so tight that I even adopted the mathematics of quantum mechanics to describe this theory. The only difference seems to be that the brain has a fixed network to guide its signals while the universe guides its signals with a network that is assembled "on the fly". After all both are non-clocked systems.
Logged
JeffWeber
Community Member
*
Posts: 1023


« Reply #3 on: September 21, 2004, 07:11:13 AM »

Interesting stuff, dolmsted.

Is your paper available to the general public?  I'd like to read it.  This stuff is interesting to me.  Also, I can't wait to see some 3D samples of your work once you get some.

-jeff
Logged

""Space is deep, Man is small and Time is his relentless enemy" --Orson Scott Card
Waterman
Customers
Community Member
*****
Posts: 1141


« Reply #4 on: September 21, 2004, 11:33:17 AM »

Non-clocked... there is a fundamental architectural problem here, in that an a crystal + Intel processor + memory is not a brain. But i admit that i've sometimes been dreaming of more parallel processing architectures :-).

I have, like Jeff and David, a fairly convenient testbed for AI stuff like this; i am working on a shipping simulator. The tasks are few, the possible moves are limited.

In addition, i use i suitable language, APL, which is as close to parallel processing as it's possible on today's PC's.

Windows provides multi-threading, the threads should be (almost) randomly called. No hurry, the human brain isn't too fast, actually. What i'd need to do (when i get the time, not too much of that lately) is to implement a hugely multi-threaded environment, say 10000  threads (to start with, and if possible), and model trees and bindings (maybe not trees, maybe something else) between them. In addition, i should let "clouds of data" float over them, to affect them all or some of them, or themselves. Fuzzy logic and accepted algo's of course baked in. Then start it, let it run for a week or so, and see what happens.

Yes, it should actually be possible to get descent output with 3.2 GHz and 512 MB, as you say.
Logged

Things should be described as simply as possible - but not simpler [A. Einstein]
excaliber
Community Member
*
Posts: 253


« Reply #5 on: September 21, 2004, 04:39:24 PM »

Fascinating indeed! I'd love to read the rest of that paper.

I'm not good by any means at neural stuff, but find enjoy reading about it.

As to distributed, why not use a cluster of computers (or perhaps even an internet distributed project)?  THat would help reduce the amount of threads per computer.
Logged
dolmsted
Customers
Community Member
*****
Posts: 119


« Reply #6 on: September 21, 2004, 06:40:49 PM »

As impatient as I am to see this information get out I had better follow official channels in order to avoid legal distractions later. So much depends on a clear official publication date. I will let everyone know what happens.

Whenever this technology gets to the neocortex it will be a highly parallel way to do machine intelligence. I think cluster computing will be the easiest way to go for general purpose simulation especially since the newer on-line games already use the server cluster model. In the meantime any game engine capable of networking between clients and server should be able to offload a lot of the work onto the clients since gaming security is not really an issue. Still, someday when this technology is beyond the basic knowledge stage I am sure special purpose parallel computers with multithreading will be used for it.

If you havn't seen it a screenshot of one of my first 3D simulations can be found in this thread: http://www.truevision3d.com/phpBB2/viewtopic.php?t=6574
Logged
Oldnick
Community Member
*
Posts: 121


WWW
« Reply #7 on: September 22, 2004, 02:11:01 AM »

wow :shock:
Logged

Бабло побеждает зло™
carnes
Community Member
*
Posts: 84


« Reply #8 on: September 23, 2004, 11:12:47 PM »

I am a grad student working on AI and A-life. It is cool to find others interested in the same thing Smiley

I am working on a project to simulate subsistance behaviors of a group of ancient Anasazi Indeans using emobodied cognitive agents. The subsistance activities just provide a context in which to develop AI and AI-Life theories and technologies. An agent is an autonous, intelligent process. "Embodiment" refers to the constraint that an agent must sense and act only through the sensors and effectors supplied by a synthetic body in a virtual world. Embodiment validates the AI and constrains AI development to conform more to the style of natural cognition. A cognitive agent is an agent that models, in some respects, natural cognition.

I am using TV3D for my project. When I am finished with my thesis I plan to publish it and all related code as free open-source material Smiley

I have several points regarding the previous posts:

1) The human brain is extremely complex. The human brain has roughly 10^10 neurons, each of which is connected via dendrites to about 10,000 other neurons. That means that there are 10^14 connections in the human brain -- the equivalent to 100 million modern telephone exchanges!

2) Fortunately, we don't have to simulate everything about the brain to achieve interesting results. Some aspects of human cognition can be modeled on a humble Pentium IV.

3) There are generally 2 levels of AI for modeling natural cognition, deliberative and reactionary. Deliberative is slow and computationally intensive. Reactionary is fast and computationally simple. Deliberative AI is usually best handled with symbolic AI (Rule Based Systems, GAs, etc.). Reactionary AI is usually best handeled with connectionist methods (like Artificial Neural Networks)

4) One of the best papers I have found on the subject is
"CreatureSmarts: The Art and Architecture of a Virtual Brain"

This paper is available at characters.media.mit.edu/Papers/gdc01.pdf
Logged
carnes
Community Member
*
Posts: 84


« Reply #9 on: September 23, 2004, 11:17:01 PM »

BTW, I have read many papers in AI and I find dolmsted's abstract suspicious. There appear to be a number of flaws in his theories and there is almost no reference to current AI theories. Either his abstract is poorly written or he doesn't know as much as he says he knows.

I hope I haven't affended you dolmsted. I just didn't want others to get diverted into quantem mechanics in their quest for better AI  :wink:
Logged
carnes
Community Member
*
Posts: 84


« Reply #10 on: September 23, 2004, 11:20:41 PM »

@Waterman
I have looked at several Agent Programming Languages (APLs)  and was not happy with them. For instance one APL uses Lisp, and Lisp does not interoperate easily with VB.NET. What is your experience with APL?
Logged
carnes
Community Member
*
Posts: 84


« Reply #11 on: September 23, 2004, 11:51:16 PM »

Yet more  points . (Sorry I can't help myself, its a favorite topic of mine   Tongue   )

The brain is not entirely asynchronous. Neurons actually fire in waves at about 1000 Hz. That's where the phrase "brain waves" comes from.  On the other hand, dolmsted is correct about the brain not having discrete states. That is why the FSM is one of the most unrealistic models of cognition.

dolmsted makes an excellent point when he says
Quote
The brain needs to exist in 3D space

In fact, Brooks theorized that true intellegence can only exist in the presence of significant embodiment (real embodiment as in robotics) and situatedness.

dolmsted mentions the idea that a frogs brain is easier to model because of it relatively small size. This is only partially true. The  nematod  has around 350 neurons in its brain and all of its neurons have been mapped. Yet the nematod's brain is still not well understood and its cognition has not yet been reallistically modeled.
Logged
xorix
Community Member
*
Posts: 181


« Reply #12 on: September 24, 2004, 03:40:19 AM »

hm .. I'm not that advanced on AI so I might be wrong .. anyway here's my view: the quantum view has one big advange: it tries to get out of the 'classical' view where you study the brain as small particles [neurons] and relations between them [dendrites] from a phisical, electrical and chemical point of view.
If I would use a metaphore it woule be like this: you take a violin and the bow and you study the strings of the violin in all depths .. after a while you can simulate the string and the bow .. after another while you simulate the [re]action between them and you obtain some noises ... after another while you understand the energy created by that action so you have some sounds ... still you have such a long way to make music [than of course you'll try to make 'good' music Smiley] ..
so I would say that AI today is still trying to make noises and it's not quite succesfull [I'm reffering to public scientifical works/commercial apps .. maybe some are very advanced but I didn't hear about them] ..
Logged
Waterman
Customers
Community Member
*****
Posts: 1141


« Reply #13 on: September 24, 2004, 06:04:59 AM »

Quote from: "carnes"
@Waterman
I have looked at several Agent Programming Languages (APLs)  and was not happy with them. For instance one APL uses Lisp, and Lisp does not interoperate easily with VB.NET. What is your experience with APL?

APL is short of "Array Processing Language". This describes a family of programming languages, among others Dyalog APL (the most advanced), APL+, J, R, K, A+. "APL" is connected to something that a Canadian, Dr. Iverson, invented long ago while at Harvard. But i've seen the letters being used for other things as well.

APL enables you to use an alternative way of notation. Mainstream languages normally process each element of a piece of data separately, and that is how one must write the code.

APL on the other hand processes all elements of a piece of data in a single process, and this is how the coder thinks of the task, and how he writes the code. It processes in parallel.

APL has a set of primitives, just like any other language has, for example + and -. But each primitive works on an  array as easily as on a single number. For example if one wants the sum of each column in a 100000 by 25 table, the APL expression would be (the 2-dim array is in 'A'):

+/[1]A

This returns a 1-dim array with 25 numbers, each number is the sum of all elements in a column. The + operator is applied over the array along the first dimension, i.e. the vertical dimension. While the CPU executes, the coder has no access to what actually happens, nor has he any interest in knowing that.

The notation (the way to express a problem in computer language terms) is much closer to the actual problem. Exaggeratedly, it's kind of coding "i want to" by just writing " i want to" in the code (it's very mathematically oriented though).

Dyalog APL uses namespaces to hold data. The data can have any type, size and shape and it can be assigned and modified (re-sized, re-shaped) on the fly, no Dim's or alike. In the AI context, one can do interesting things like "letting a robot function wander around the data and do things". Even prior to knowing how much data there is to investigate; the robot may conclude that on it's way. The data either accepts of rejects the robot functions input, depending on the bits and pieces. A certain case could create a new robot (in a separate thread) that gets directed to a specific area of data, for example the classical "adrenaline shot" that affects musculature parameters.

Of course, everything ends up in serialised processor instructions, and here's the architectural problem. But this notation and data management gives a little push.

www.dyalog.com , don't get disappointed by the dull look, there's more behind it. Full .NET etc. support, but i'm afraid it's between 2 and 3 kUSD and no evals, i am sorry. If you ever decide to try, get ready to live with it for the rest of your life, it's kind of addictive :-).
Logged

Things should be described as simply as possible - but not simpler [A. Einstein]
dolmsted
Customers
Community Member
*****
Posts: 119


« Reply #14 on: September 24, 2004, 11:12:15 PM »

I don't want to give anyone the idea that my brain theory is based on quantum mechanics. It was developed from fundamental principles by considering information processing in an unclocked system. The resulting concepts just turn out to be similar to that found in quantum mechanics. The states in such a system cannot be deterministically defined. Instead the best the system can do is to define state probabilities and more fundamentally, potential state probabilities.

Probabilities require the normalization of a set of events (state changes) so one cannot even define the probabilites of getting different colored balls DURING the process of drawing them from an urn. All one can say during the drawing process is that the state of the urn consists several simultaneous potential probabilities having low precision. This is also the core idea of quantum mechanics although there the potential probabilites are often called the quantum potentials.

The Erlang function derived for the neurn's potential state function is not periodic (wave-like) like the quantum equation. It is in fact almost identical to the cable equation used to describe the real time charge distribution in the neuron except that it is simpler (and thus more efficient for computer simulation). The cable equation has two variables, distance and time, while the Erlang funtion has only time with distance represented by the order of the equation.

Yet because both the brain and the universe are non-clocked systems they must both be based on the same underlying information processing theory. As far as I can figure out the wave like nature of the quantum equation is used to define the local network link for the point particles (impulses) due to mutual interference somewhat similar to two wave fields in a wave tank canceling out each other in certain places to make a smooth path. Anyway assuming that gives sense to the simplest derivation approach of the quantum equation found in introductory texts on the subject.

Carnes, just because some neurons can fire in regular rythms does not make the brain synchronous. Does the brain transisition everywhere at the same time from one state to the next? No it doesn't.

A.I and neural networks have not really changed for the past 30 years and they have failed to deliver anything approaching animal intelligence. You probably do not remember all the big funded A.I projects of the 1980's that failed like the Japanese 5th generation computer project and Doug Lanat's big knowledge base project at MMC (the industrial consortium that was down in Texas). Both fields provide insight into the problem but they are not the answer and are a dead end in terms of research. After all  they can't even explain a nematode brain .....  

So far models of cognition are isolated from each other and do not tell an engineer how to make a robot (for example). How are all those models ever going to be integrated? The type of modeling such as you are doing is great but those models will have to be transfered to realistic brain simulations someday.
Logged
carnes
Community Member
*
Posts: 84


« Reply #15 on: September 25, 2004, 09:19:54 AM »

@dolmsted
A good debate is thought provocing Smiley

I am still confused by your theories  :?  You mention state probabilities. What are these states for? Are they states of a neuron? You use the term "information theory," which is  vary gerneral. I would like to know what kind of information theory you are talking about.

Some things you mention do not come from standard AI theory, so they need further explanation. For example, the "cable equation" is not mentioned in the AI literater/books that I have concerning ANNs.

 My point with the nematod was not that AI has failed, but that simulating cognition by modeling each natural neuron in a brain would be naive. I am sure  you would agree with that.

I disagree with the statement that AI has not been a success.  There are two separate goals in AI:
1) Engineering -- to develop machines that can perform intelligent behavior (perception, reasoning, learning, communicating, acting) as well as humans can do, or possibly even better.
2) Scientific -- to understand intelligent behavior, particularly the kind that occurs in humans and animals.

 Engineering
AI has been very successful in moving towards it engineering goals. AI was stagnated in the '80's as you say, but things have changed much since then.

Here are some examples of the successes of AI towards its engineering goal:
-- Some modern games, such as The Sims, Black and White, and Creatures
-- Aibo, Sony's robo-dog http://www.us.aibo.com/
-- Robo-cup soccer
-- Millitary battle simulations
-- Crowd simulation, such as that used in the movie "Lord of the Rings"
-- Intelligent Internet content filters
-- Manufacturing process optimization
-- Stock market predictions
-- Chatbots, like ALICE
-- Handwriting recognition
-- Spech recognition
-- Facial recognition  security purposes
-- Pattern recognition and data-mining in bioinformatics
-- Data cleansing and interpretation in bio-imaging
-- . . .

Scientific
AI has been much less successfull in achieving its scientific goal. In this regard you are partially correct. I personally have doubts about whether the prevalent Von-Neuman-style computer  architectures can every achieve much results in the area of understanding natural cognition. Nevertheless, there have been some successes in AI towards AI's scientific goals:
-- Modeling of ecodynamics in human societies and culture
-- The ACT-R framework  has successfully modeled various aspects of human cognition. See http://act-r.psy.cmu.edu/
Logged
BYTE-Smasher
Community Member
*
Posts: 956


WWW
« Reply #16 on: September 25, 2004, 10:33:58 AM »

Unfortunately, almost all of the "AI" you've mentioned here consist of simple if-then reasoning... if a = 1 then beep

the goals you mentioned (perception, reasoning, learning, communicating, acting) have not even come close to being met in most of those examples...

perception: ok, almost any computer simulation can "percieve" it's computer-based surroundings... in almost all above cases, all the data is accessible in the program itself... this is no achievement... a computer that uses fuzzy logic to recognise an image, however, is... like the self-driving cars the military developed that use video cameras as eyes....

reasoning: all of the AIs I've seen still use if-then reasoning... the simplest form of reasoning in existance. If condition = true then do something.... some AI uses CBR (case based reasoning) but these reasoning methods need huge amounts of data to be able to make decent decisions...

learning:  though many AIs claim the ability to learn, few if any ever deliver... the "alice" bot you mentioned claims to be able to learn, but the only thing she learns is a few details about the chatter shes talking with, (name, age, eye color, etc) and doesn't
"learn" much else... I allumed she'd be able to learn how to talk better, but after a few months of having her on my website, I realised that this was not the case... if anything, her chatter becomes less intelligible over time...  not to say this is the same with every AI, as I have seen some bots that learn... but my experience is, most don't.

communicating: see above... I've never seen a bot that can communicate intelligibly... if you find one, let me know.

acting: well, it seems you don't need many brains to act... I've played many games with good AI acting... in fact, the herdest part of this is dumbing them down... either way, I'm not trying to insult drama geeks (I am one) but AI seems good for acting...
Logged

carnes
Community Member
*
Posts: 84


« Reply #17 on: September 25, 2004, 06:17:45 PM »

@BYTE-Smasher

There is some contraversy over what intelligence really is. Alan Turing thought the ability of a machine to surpass a  human's ability to play  chess would be a true benchmark in AI.  When IBM created Deep Blue, people said, "That's not intelligence; it's just searching a massive game tree." No matter how successful AI is, it will always be doubted.

Quote
Unfortunately, almost all of the "AI" you've mentioned here consist of simple if-then reasoning... if a = 1 then beep


This is not true. Among the AI techniques used in the afore mentioned applications are  neural nets, support vector machines, and evolutionary programs, expert systems, blackboard systems, and fuzzy logic.

The robots used in Robocup soccer are complete coginitive structures implementing all the afore mentioned types of intelligent behavior (perception, reasoning, learning, communicating, acting). I highly recomend the Robocup website http://www.robocup.org/. A researcher here at WSU nearly won an international Robocup tornament  in  '97 using an AI architecture that was enhanced with Cultural Algorithms.
Logged
dolmsted
Customers
Community Member
*****
Posts: 119


« Reply #18 on: September 26, 2004, 06:40:55 AM »

Carnes, I have been refering to information PROCESSING theory which is different from the communication theory developed by Claude Shannon and now commonly called information theory. Good introductions to this are:

"Introduction ot Automata Theory, Languages, and Computation" (1979) by Hopcraft and Ullman for a good introduction to deterministic approaches. See the more recent "Introduction to the Theory of Computation" by Sipser for a more recent introduction that begins to talk about uncertainty concerns (probability and complexity).

From these you will see that a state is the situation of the whole information processing system under consideration.

The cable equation is found in the computational neuroscience field. Before it was adopted to mathematically describe neurons it was used to describe electrical cables, hence its name. See chapter 2 of "Biophysics of Computation - Information processing in single neurons" (1999) by Christof Koch for a comprehensive description.

Quote
My point with the nematod was not that AI has failed, but that simulating cognition by modeling each natural neuron in a brain would be naive. I am sure you would agree with that.


Not exactly. I agree that one should not attempt to replicate the brain exactly with the cable equation defined neurons. That is like trying to fly by only using the flapping wings of birds. Instead one needs to find the underlying principles on which real intelligence works and then build the machines. Deterministic, clocked information processing systems as used in all A.I. techniques do not describe fully the underlying principles of intelligence. A.I. is equivilent to the uncontrolled gliders before the Wright brothers discovered the principles of flight. So any system with real intelligence will be more like the brain than different being highly parallel, non-algorithmic, and non-clocked.

So what is intelligence? That is a tough question as you pointed out Carnes. I would say that it is any information processing system that can handle uncertainty for that is where all the "intelligent" examples you mention break down. Speech recognition works 90% of the way but it cannot handle the unresticted speech of humans. You mention other techniques besides the if-then rule based approach of conventional A.I. because they are able to handle some degree of uncertainty. But they have other problems and do not go "all the way". How should uncertainty propigate through the system? How do the two dimensions of uncertainty interact (truth-value and validity in logic, and probability and precision in probability theory)?  What is the relation between the uncertainty measures in logic and probability?
Logged
Dan
Customers
Community Member
*****
Posts: 707


WWW
« Reply #19 on: September 28, 2004, 06:42:53 AM »

Quote from: "Carnes"

Quote:
Unfortunately, almost all of the "AI" you've mentioned here consist of simple if-then reasoning... if a = 1 then beep  


This is not true. Among the AI techniques used in the afore mentioned applications are neural nets, support vector machines, and evolutionary programs, expert systems, blackboard systems, and fuzzy logic.


hmmm - I didn't think AI could be anything other than logically based?  Expert system ,Fuzzy logic and Blackboard Systems are all  based on rules, are they not? They all have different methods of obtaining the rules. but the bottom line is "if a = 1 then beep". ANN's are the only method that breaks the mold as it allows the machine to make predictions to inputs that it hasn't seen before. But these predictions are still based upon patterns defined by previous inputs.
Logged
Pages: [1] 2
  Print  
 
Jump to:  

Powered by SMF 1.1.3 | SMF © 2006-2007, Simple Machines LLC
Seo4Smf v0.2 © Webmaster's Talks