Version 0.5 Version 0.6 Version 0.8
Now at week 14 what started as a project , became a reality what is new in this version from prior versions , are as follows:
The jelly fish was added , it wonders all over never gets off the visual area .Fractal tress were added one using the twig rule on the bottom (red color) The other using tree-2 rule (green color).Music was added (plays beyond the sea) actuated by pressing a key. Learning to use processing has made learning Java fun , what makes Java not so much fun are the limitations it has from the Java itself. On this particular semester I also learned Python , Perl among others , and I learned you can overcome Java limitations using other languages that are available . From week one CSIT 1520 has been a learning challenge , and with the right leadership by Dr Brown , the outcome has been a learning experience equal to none . It all started with creating an eco system , the first version had only a blue background , the fish were nothing but triangle shaped as by then I didnt figure yet to make them look like a fish . then it all began to take shape as exam 1 came , there were only 5 objects exam 2 had 12and V0.90 has now 17 which include the fish , shark , turtle , following a sponge , the box2d rocks falling , particle system on the bottom , also built a timer , to time release of rocks , and also to time (make it faster) the growth of the fractal trees, and also has a Branch and leaf for the fractals. Also added is the mp3 player , and the reef.
The focus was to build the habitat rather than to make it a game , on this virtual habitat you can see a few species living together.
This week we worked on Neural Networks , how and why it was developed , and the purpose of it . Trying to simulate the human brain . to teach a machine sort of how you teach a child to remember things . An Artificial Neural Network (ANN) is an information processing paradigm that is inspired by the way biological nervous systems, such as the brain, process information. The key element of this paradigm is the novel structure of the information processing system. It is composed of a large number of highly interconnected processing elements (neurons) working in unison to solve specific problems. ANNs, like people, learn by example. An ANN is configured for a specific application, such as pattern recognition or data classification, through a learning process. Learning in biological systems involves adjustments to the synaptic connections that exist between the neurons.
Neural network simulations appear to be a recent development. However, this field was established before the advent of computers, and has survived at least one major setback and several eras.
Many importand advances have been boosted by the use of inexpensive computer emulations. Following an initial period of enthusiasm, the field survived a period of frustration and disrepute. During this period when funding and professional support was minimal, important advances were made by relatively few reserchers. These pioneers were able to develop convincing technology which surpassed the limitations identified by Minsky and Papert. Minsky and Papert, published a book (in 1969) in which they summed up a general feeling of frustration (against neural networks) among researchers, and was thus accepted by most without further analysis. Currently, the neural network field enjoys a resurgence of interest and a corresponding increase in funding. In the last week of class we spoke of the following topics:
- Choosing Metaphors for Program Construction
- What is a “neural network”?
- Brief history of Artificial Neural Networks (ANN)
- Complex Adaptive Sysems
- Strategies for Learning
- The Perceptron
- Multi-Layer Neural Networks
- Using Neural Networks
- Feedforward Backpropagation Neural Networks
- A Hopfield Neural Network in Java
- Hands-On Examples
- Using Genetic Algorithms with Neural Networks
- Simulated Annealing
Week 12 we got introduced to Genetic Algorithms , the survival of the fittest , sort of Darwinian philosophy of the genes , it was all new to me , we worked on code using the Algorithm from the book , and modified it a bit , this topic has captured much of my interest .
Genetic Algorithms (GAs) are adaptive heuristic search algorithm premised on the evolutionary ideas of natural selection and genetic. The basic concept of GAs is designed to simulate processes in natural system necessary for evolution, specifically those that follow the principles first laid down by Charles Darwin of survival of the fittest. As such they represent an intelligent exploitation of a random search within a defined search space to solve a problem.
First pioneered by John Holland in the 60s, Genetic Algorithms has been widely studied, experimented and applied in many fields in engineering worlds. Not only does GAs provide an alternative methods to solving problem, it consistently outperforms other traditional methods in most of the problems link. Many of the real world problems involved finding optimal parameters, which might prove difficult for traditional methods but ideal for GAs. However, because of its outstanding performance in optimisation, GAs have been wrongly regarded as a function optimiser. In fact, there are many ways to view genetic algorithms. Perhaps most users come to GAs looking for a problem solver, but this is a restrictive view.
Many scientists have tried to create living programs. These programs do not merely simulate life but try to exhibit the behaviors and characteristics of a real organisms in an attempt to exist as a form of life. Suggestions have been made that a life would eventually evolve into real life. Such suggestion may sound absurd at the moment but certainly not implausible if technology continues to progress at present rates. Therefore it is worth, in our opinion, taking a paragraph out to discuss how A life is connected with GAs and see if such a prediction is far fetched and groundless.
- What are “Genetic Algorithms (GAs)”? (aka “evolutionary algorithms”)
- Why use a GA?
- Darwinian Natural Selection
- The Genetic Algorithm
- Creating a Genetic Algorithm
Week 11 was interesting to say the least , as we covered fractals , doing the code to generate diferent colors was challenging , but fun to to do .
“Nearly all common patterns in nature are rough,” writes the mathematician Benoit Mandelbrot,
“They have aspects that are exquisitely irregular and fragmented—not merely more elaborate than the marvelous ancient geometry of Euclid but of massively greater complexity.”
As Mandelbrot illustrates in his memoir, there are many rewards out there for an elite mathematician—university chairs, corporate research jobs, and conference junkets—but fame is not usually one of them. His uncle, Szolem Mandelbrojt, was a star of French mathematics in the 20th century, but he looked with suspicion on the kind of acclaim Benoit received when he published his 1975 book Fractals and its popular successor The Fractal Geometry of Nature in 1982. “There are 15 people in the world who read everything I write,” Szolem told his nephew. “That is enough. I find that very comforting.”
What made Benoit Mandelbrot something of a cult figure was the fact that his key discovery, fractal geometry, generates a weird kind of visual beauty. The set of mathematical objects known as the Mandelbrot set is produced using a formula that he describes as “very plain”: “Pick a constant c and let the original z be at the origin of the plane; replace z by z times z; add the constant c; repeat.” A graph of the set produces an image of fantastic complexity and strange magnificence. It exhibits the key property of a fractal, which is that it is self-similar—it repeats its own pattern on every scale.
- What is a fractal?
- Fractals exhibit self-similarity
- Fractals have recursive definitions
- A review of recursion
- Examples using recursion
- The Cantor Set
- The Koch Curve (aka Koch Snowflake)
- Fractal Trees
- L-Systems (Lindenmayer Systems)
- The Mandelbrot Set
Object files for project
Version 0.5 Version0.6 Version0.8 Version 0.87
Cellular automata ( CA for short) are discrete, abstract computational systems that have proved useful both as general models of complexity and as more specific representations of non-linear dynamics in a variety of scientific fields. Firstly, CA are (typically) spatially and temporally discrete: they are composed of a finite or denumerable set of homogeneous, simple units, the atoms or cells. At each time unit, the cells instantiate one of a finite set of states. They evolve in parallel at discrete time steps, following state update functions or dynamical transition rules: the update of a cell state obtains by taking into account the states of cells in its local neighborhood (there are, therefore, no actions at a distance). Secondly, CA are abstract, as they can be specified in purely mathematical terms and implemented in physical structures. Thirdly, CA are computational systems: they can compute functions and solve algorithmic problems. Despite functioning in a different way from traditional, Turing machine-like devices, CA with suitable rules can emulate a universal Turing Machine, and therefore compute, given Turing’s Thesis, anything computable.
The mark of CA consists in their displaying complex emergent behavior, starting from simple atoms deterministically following simple local rules. Because of this, CA attract a growing number of researchers willing to study pattern formation and complexity in a pure, abstract setting. This entry provides an introduction to CA focusing on some of their philosophical applications: these range from the philosophy of computation and information processing, to philosophical accounts of reduction and emergence in metaphysics, and debates in fundamental physics.
On week 10 we covered the following subjects :
- What is a “cellular automaton (CA)?”
- History of CAs
- CAs – The Simplest Cybernetic Systems
- Types of CAs
- Stephen Wolfram – A New Kind of Science
- TED Talk by Stephen Wolfram – “Computing a Theory of Everything“
- Konrad Zuse – Digital Physics
- Implementing CAs in Processing
- Wolfram CA Classification
- John Conway’s Game of Life
- Object-Oriented CAs
- We also prepared to show code and demo the software we are working on to Dr Brown problem exists when box2d is applied to the software , it wont run on the processing.js web file
to create the applet you must go back to version 1.5 but created another set of problems , therefore Dr. Brown said to just post pics of those versions , in my case that is version 0.87
- in version 0.87 box2d slows the program a bit , and that is the one shown to Dr Brown and the rest of the class , i was able to make that work once i figured what pbox2d did that caused the problem , and that is version 0.87 , of which pictures are posted as well as the online plus code sent to Dr. Brown
Version 0.5 Version0.6 Version0.8
This week Dr Brown covered Autonomous characters , boids gave us many examples as he covered the following:
Simple behaviors for individuals and pairs:
- Seek and Flee
- Pursue and Evade
- Obstacle Avoidance
- Wall Following
- Path Following
- Flow Field Following
- Code solutions for one requirement of autonomous characters in animation and games: the ability to navigate around their world in a life-like and improvisational manner. These “steering behaviors” are largely independent of the particulars of the character’s means of locomotion. Combinations of steering behaviors can be used to achieve higher level goals (For example: get from here to there while avoiding obstacles, follow this corridor, join that group of characters…) This paper divides motion behavior into three levels. It will focus on the middle level of steering behaviors, briefly describe the lower level of locomotion, and touch lightly on the higher level of goal setting and strategy.
- This was very interesting behavior done with few lines of code , we also worked on creating an applet so we can use it instead of the processing.js
Version 0.5 Version0.6
Week 7 has been brief but interesting as well , we covered all below , Dr Brown however stressed the importance of code repositories, I had began in week 5 , and i will maintain all future versions as they come out. We had Professor Richard Barber tell us all about version safekeeping in repositories ,he gave us a better understanding why they are important to do always .
- Virtual EcoSystem Discussion
- The Power of Physics Engines
- Incorporating Box2D in Processing
- Code Repositories We also covered the following things:
- World – physics simulation manager.
- Body – the book’s Mover class or Dr. Brown’s Object class.
- Shape – object’s collision geometry.
- Fixture – attaches a Shape to a Body (defining density, friction, restition, etc.)
- Joint – connection between two Bodies or between a Body and the World.
- Vec2 – the Box2D vector.
This has been an interesting yet fun week , we learned about particles in Processing and is been quite a fun learning experience , dealing with smoke , fire or random particles . I decided to add a gas escape from bottom of ocean (small)the sulfur changes color from light red to blue merges with water color as it disappears. Also brought about improvements to actual site , now posted in the school server, which somehow at first did not work properly . changed to color of the fish , added the particle class to it , i think we need to fix much the shark in the coming days. To keep perspective of changes i kept the old code for week4 so when you go to week 4 blog u can see how it was then compared to how it is now wish i did since week 1.
Week Six Changes : Added Particles
This Week we showed our project in class and discussed certain improvements
Professor Brown helped to see areas were we can improve and also the input of all students was in it. I got a lot of ideas from this session , the fish looked boring , after I saw Davids gold fish i thought why not make mine gold maybe i add a tint of red later , a bit of an improvement this week . Professor Brown gave us the week off the Blog , just added this for perspective.