Development Issues & Early Design Drafts with GeoKone.NET

I felt like writing about the design process and some implementation details that I have been going through since I started working on GeoKone.NET. I will talk about performance issues, early designs that I worked for GeoKone, show some screenshots of different versions along the development process and finally look at what is up and coming with the next version of GeoKone.NET.

I was originally thinking about waiting for 1.0 version until to write about some of this stuff, but I feel it’s maybe better to split it into couple of parts and just to show you what kind of things I am facing when developing GeoKone.NET

Performance & Design Issues

One of the issues that I have been struggling constantly with GeoKone  is performance.

Processing.js + Javascript + HTML5 techniques have not been developing at the pace I would have wished for. When I started implementing GeoKone about 1.5 years ago, I thought that WebGL would already be widely supported or that browsers would have found an unifying way of handling canvas element + input + large amounts of classes, but I guess I was overly optimistic on this.

The first version of GeoKone used a simple model: Processing.js running in noLoop() mode and the canvas was only redrawn when user changed the input. This worked pretty well, as GeoKone was still really simple.

Early Beta Version of GeoKone

Early Beta Version of GeoKone

But this noLoop() model was too simple for taking into account ways to present visual feedback for the user when interacting with the PolyForms (the formations on the screen, based on number of points around a circle). I needed a way to run logic & drawing even when the user was not doing anything, so I could present cool animations and transition effects in the program that would run for a while after the user stopped doing anything, or before stuff happened on the screen.

So I designed to take the game engine approach, where a collection of state machines are running at 30 FPS, rendering all polyforms on each frame. This model was used before versions 0.96, and it proved to be too slow to be really used without hardware acceleration.

This design was very responsive and allowed to make some nice transition effects and other realtime animations when joggling polyforms for example, but would almost immediately raise the CPU usage to 100% or even over on multiple cores, depending on the browser.

I also designed and implemented this cool Hyper Chakana Controller for modifying and interacting with objects on the screen. Here you can see a early design image that I had in mind for GeoKone running in fullscreen:

Early Design Of Fullscreen GeoKone, with the 12 -operation Hyper Chakana Controller

Early Design Of Fullscreen GeoKone, with the 12 -operation Hyper Chakana Controller

The Hyper Chakana Controller is the Compass Looking controller, with 4 actions in each direction, allowing Context Specific Actions to be mapped to each one of these directions, so that if you select a PolyForm, the Chakana would be able to Rotate, Scale, Move etc the polyform based on the Natural Directions the user is touching.

Developing The Chakana Controller, Running at 30 FPS

Developing The Chakana Controller, Running at 30 FPS

The name and design for this was based on the South American Sacred Geometry Cube, The Chakana, which you can see a 2D -version here:

Chakana - It Is Said that all South American Culture, Art, Design is based on the ratios of this design

Chakana – It Is Said that all South American Culture, Art & Design is based on the ratios of this image

I even went so far as to implement this HyperChakana controller, as you can see in this early preview video I made:

But after testing this model for a while, I realized that I cannot run this 30 FPS all the time, as making the CPU fan scream was not an option, so I had to figure out something else.

I looked into WebGL, but since back then it was still experimental (and still is, Safari does not officialy even support it yet, you have to toggle it via the developer options) I decided to stick with Processing.js + basic 2D canvas.

GeoKone eating 98% of CPU

GeoKone eating 98% of CPU

I also decided get rid of the Chakana Controller for now, although I put a lot of work into designing and implementing it. Hopefully I will be able to use this design in upcoming, native versions of GeoKone.NET, as I believe this could be a very natural way to interact with objects on the screen, especially with touch screens.

So I had to find a middle road, not running the logic & drawing at 30 FPS, but still having to be able to animate transitions between polyforms. So I decided to run logic for 50 milliseconds after the user has stopped interacting, and after this call noLoop() to stop Processing.js from calling the main draw() method. This way I could still animate stuff and run logic, and the it wouldn’t take as much CPU as before.

This model worked pretty well, and is the one that is still in use with the current live version (0.97). But it proved to create unnecessary logic for handling the stopping and starting of the loop() and noLoop() methods, creating some pretty ugly state handling code that is just unnecessary.

For the next version of GeoKone.NET 0.98, I have cleaned up the code and got rid of this difficult method of determining when to run the loop and when no to, and just tell Processing.JS not to run the loop at all in the beginning, and to call redraw() manually whenever the user interacts with the polyforms. This seems to be the only acceptable model in which GeoKone is responsive, and does not hog the CPU.

Premature Optimization

Also I had foolishly pre-optimized the code, using precalculated sine and cosine tables for the polyforms, inside the PolyForm class. These were not really even used as any time any parameter of the polyform was changed, the class was re-created completely. So even when the user moved the polyform around, it was re-created, thus re-creating the sine and cosine tables also, and preventing from re-using them. Doh. For the next version I have removed all this kind of “optimizations” and just draw and calculate everything on the fly.

Premature optimization truly creates a lot of problems, as the logic of the program changes during development process so much that the optimizations are not even affecting the program in anyway, but they are making it more difficult to adapt to changes in the architecture.

I actually profiled my code and found out that this creating of these sin/cos tables was causing major slowdown, as I used the new keyword everytime the PolyForm was re-created to create the tables. For debugging I use Firefox and the excellent Firebug extension, and I could see the more I removed any use of new in loops, the more faster the initialization & drawing got. This is kind of obvious, as creating classes in performance critical loops of course takes time to allocate new objects, instead of just changing parameters of existing objects on the fly.

It’s really easy to start optimizing early, and run into problems afterwards. This also bit me in the ass when trying to optimize the drawing so that all the in-active polyforms, that is, those polyforms which are not currently being edited, are being drawn into a separate backbuffer and the active polyforms are drawn to a front buffer, and these are then combined to make up what the user sees on the screen.

Debugging Back Buffer Optimization - Backbuffer on left, frontbuffer on right

Debugging Back Buffer Optimization – Backbuffer on left, frontbuffer on right

This enabled me to draw more complex scenes than before, as I could copy very complex formations into the background buffer, and just move the stuff in front buffer around.

But this created problems with the z-ordering of polyforms, as whenever I would choose polyforms to be modified in the front buffer, these would rise on top of the polyforms in the backbuffer, even though logically they were behind the ones in backbuffer.

This was caused because the backbuffer was drawn in the back, and the frontbuffer always on top of the backbuffer, ignoring completely the z-ordering of the polyforms and changing the way the scene looked when editing and when you disabling Mod All.

I have enabled this Back Buffer/Front Buffer optimization for now at least three times, and yet again I have to disable it as it causes problem with the drawing logic. Better just to stick with implementing the functionality first, and then worry about optimization :) It’s kinda difficult also to let go of these optimizations, as I know that I could be drawing much more faster scenes even with current versions, but there would be some minor drawing bugs which I find unacceptable. Maybe I will find a good way to do it after the program logic is finished.

Next Version

Here are a couple screenshots of the next version in action, I’m not going to write anything more now as I’m really close to releasing this and I have to write those in the release notes anyway :) Major new improvement is the Layer Style Polyform Selector, which you can see on the left side of the screenshots. Also, you can now move the PolyForms up and down in their z-ordering, which makes it more easier to edit your scenes.

Testing the PolyForm Selector

Testing the PolyForm Selector

Testing Irregular sized Scenes with the Selector

Testing Irregular sized Scenes with the Selector

It is easy now to move polyforms higher and lower in the order which they are drawn

It is easy now to move polyforms higher and lower in the order which they are drawn

That’s it for now! Continuing finishing the last tweaks on the next version, and if you want to try it out yourself early, you can check it out at the master-optimization branch from GitHub: https://github.com/inDigiNeous/GeoKone/tree/master-optimization.

How We Are Being Programmed :: Seeing Through Methods of Brainwashing

Now for something different, recently I have been mostly writing about Sacred Geometry & GeoKone, but I have always lots of writing underway that is just waiting to be finished.

In this writing, I will dwelve into the subject of Human Programming, something that is happening all around us. Especially in the western culture, that is dominated by the idea that Some People Know the Truth, and You Don’t.

Disturbingly, we don’t even to seem to notice this happening, as this hobby of some Very Enthusiastic People has been going on so long that it is difficult to separate what is really our Own Programming and what is External Programming. This is why I want to write about this subject, as recognizing what Comes From Within You, and What Comes Outside Of You is very important in finding Your True Self.

I will look at the subject from a Computer Programming viewpoint, as I am a computer programmer myself, so it is natural for me to express these ideas through metaphors that relate to programming and computers. I don’t take the subject too seriously though, as I believe nothing should be taken too seriously.

How We Are Being Programmed

Human Programming Is Easy!

Human Programming Is Easy!

Human Programming! This now popular hobby has been growing during the last 2000 years or so exponentially. Everyday we are being told what to eat, what to wear, what to buy and how to think. And how to believe in forming our World Views. Human programming is not really that complicated when we get to the core of it.

Most of it it is based on repetition and affecting to our most basic needs. For example our fear and the basic instinct to survive is being constantly bombarded by messages of assurance through purchasing some product or telling us that We Are Not Enough, You Need This to be Fully Human. Another strong way to get our attention is through sexual messages, as this pulls in the strong animal in us and leads us to easy prey for those who know how to affect our minds when we are not paying attention.

In order to detect when this is happening and how we can protect our selves from it, we will have to first understand How and When this programming is going on.

In this writing, we will inspect the Simplified Model of Human Computers: The Threefold Connection of The Mind, The Body and The Spirit . Understanding the relationship between these three parts is vital in understanding how humans are manipulated everywhere.

Humans can be thought as a combination of three independent operating parts: Body, Mind & Spirit:

TriFold Connection Of Spirit, Mind & Body

TriFold Connection Of Spirit, Mind & Body

This is an Extremely Simplified Model. These three parts describe the Main Operating Parts of The Human.

Every one of these three parts  can operate independently. The Mind can be active without connection to the body, The Body can react to it’s environment automatically and The Spirit can be totally disconnected both from the human body and mind and still function completely. This is important to know, as separation of these parts is one of the key aspects of programming humans. When we are not complete, when we feel some part of us is not enough, when we are broken, then we can be programmed more easily.

When programming Humans, new codes have to be inputted to the system through various techniques that Require Careful Manipulation of all Three in Co-Ordination. These can be thought as kinds of buffer overflow techniques, depending on the information that we want to feed.

Most Programming Techniques Happen on a Mind & Body Level! The Spirit requires more high level work to be programmed. We will concentrate on the Mind & Body level work, as these techniques work on the majority of Humans.

Now, Let’s start  looking at basic models for these three parts:

The Body

Human & Female Bodies

Fleshbags of Water

The Body can be simplified as a Highly Developed Artificial Intelligence that Responds to Stimulae from the External World around it. The body acts as a antennae for the human, transferring information from the world around it to the Central Processing Unit, The Brain.

The Body reacts to its environment through the Nervous System in interaction with The Mind. The Mind/Body System Models its own Internal Version of the Environment around it every iteration of time units, receiving Input from the different Sensory Systems, eyes, ears, nose, mouth, skin and so on and then Creates Simplified, Symbolic Models that represent different things from these sensory inputs.

How is this relevant for programming purposes  ?  These Internal Models Can Be Re-Programmed! Let’s look more into detail how the Body builds these models:

Raw Energies

Streams of Raw Energies

Imagine everything that happens around you. All the things you are sensing. Where do these perceptions come from? From scanning the Raw Energies from your environment.

The Body is always Re-Acting to it’s Environment. Like bats sending out Sonic Waves and reflecting them back, the body does the same thing through all it’s sensory input/output systems.

A Bat Scan

A Bat Scan

The Body is scanning the different frequencies of energies vibrating around it all the time, and then re-creating that environment through Conceptualized Models of Meaning (eg. “this energy represents a table”) and storing these models into the Mind Construct.

Human Energy Fields

Human Energy Fields

Every moment, every second, every millisecond, The body is reflecting the energies around it’s perimeter and Building Complex Symbolic Versions of the different wave combinations received.

These Models are created to make a sense of the environment, to symbolize raw energies into Meaningful Pieces of Operation Codes that can be processed more efficiently. If this process wouldn’t happen, we would be overwhelmed by the information received and would not able to operate at all in our highly complex environments. The information needs to be conceptualized and simplified in order to process effectively and to operate as physical human beings.

This process can be thought as kind of Connect The Dots from the information around us. When we first come here, these conceptualized symbols are empty. We have not yet connected any dots, and are open to any programming that comes from outside.

Empty Slate For Programming

Empty (Not Really) Slate For Programming

When the Mind Construct is empty, the Human has no way of understanding it’s environment. When human babies are born, they start building this Mind Construct through interaction with the environment. They scan it constantly, try out different things, taste, smell, hear, yell and see what happens.

At This Age, Humans Already have Very Complex Mind Constructs (but very easily programmed still!)

At This Age, Humans Already have Very Complex Mind Constructs (but very easily programmed)

Through this recursive interaction, slowly, the Mind Construct starts to form. This is why babies are more easily programmed than grown adults. Adults already have sturdy Mind Constructs within their Brain, and have a lot of old programming in the way of inputting new data to their system.

The Body/Mind Creates a Meaningful Symbolic Model Of The Energies

This Is A Table! The Body/Mind Creates a Meaningful Symbolic Model Of The Energies

We will go deeper into this later, for now it is enough to understand that everything the body experiences, results from scanning the environment from the moment we are born, and Through this Constant Learning Process, Re-Defining and Re-Iterating over These Models, Creating and refining the Internal World View.

What this in practicality means, is: All that Humans Experience, Can Be Modified, if we can affect what kind of data is inputted into the body/mind in the construction phase!

How Difficult this Modifying is, Depends Largely on the Amount of Data the Human Can Process at any Given Point. Humans operating on more Higher Frequencies can see through simple programming methods, and require more complex buffer overflow methods. This we can call as the Base Operating Frequency of any single human.

Base Operating Frequency

The Operating Frequency which the Human Body is operating, defines How Much Information the Human can handle given every sampling point, or moment in time. If the body is operating on a High Frequency, it will process more information at once from it’s environment, creating more Complex Models and seeing more complex structures happening around it’s environment.

Higher Frequency Means More Processing In The Same Time Period

Bodies running with Lower Frequencies Construct a Simpler Model, as they possess less processing power per sampling point. This Results in Very Different World Views between different Human Models. The lower the frequency, the easier it is to feed programming into the human!

Fear, Sexuality & Territory Control are all Low Frequency operating modes. When these modes are being enforced all around us, our Operating Frequency is lowered to match these modes. The worry about how to survive, who to breed with, and who owns this and that draws us to operate on these basic instinct modes. And even though we think we are living in a high civilization, you don’t need to look too far to see these operation modes enforced everywhere. Go out in the city and see how humans are operating. This is key to controlling us, keep those frequencies low!

When the human is operating at a low frequency, certain higher parts of our psyche and spiritual abilities are not activated. Then we cannot see the whole picture, we only see the lowered view of things, from a low viewpoint. This view point puts individual survival on top of all other things and thus keeps us actually very limited in how we can form our world view. We will always put individual needs on top of the community needs if being kept in this passive mode. This is also key to keeping us Not Seeing That We Are Being Programmed!

By Raising The Human Operating Frequencies, we are more Free To Conceptualize our World Views into more Coherent and Larger Models. But if you are into human programming business, it is indeed not something you want, for people to become aware!

This is something we will go into more detail later, but let’s just say there are certain tricks to keep the Human Frequency low enough to feed it programming data more easier. Now, let’s take a look at

The Mind

Brains Input Output System (BIOS)

Brains Input Output System (BIOS)

The Brain stores the construct known as the Human Mind. Notice the word construct, as the Mind is ultimately a big network of connections programmed from the birth of the human, and is only limited by it’s own programming.

The Human Mind is designed to Protect The Body,  the Vessel Humans use to travel the 3D/4D Physical/Time Dimensions. The Mind AI is controlled by the Spirit or Higher Self, and also handles as a I/O center for the Body.

Self Configuring Network Of Independent Cells

Self Configuring Network Of Independent Cells

The Mind is a Self Configuring Artificial Intelligence, that can inspect itself and make self-corrections in it’s Operation Code. But it also relies heavily on input and stimulae coming from external sources, and does most of the I/O processing for the Human Body, gathering input, processing it and sending output to the Body.

The Mind Processes Information. It’s main task is to keep the Human Body alive, by re-acting to the environment automatically through the nervous system.

This AI is Very Highly Developed, but it relies on certain basic principles of operation that Once Detected, Can Be Manipulated, especially if the human is running on a low enough frequency or has the connection to the Spirit cut off sufficiently. This is why it will always prioritize certain aspects of our programming, like survival and basic needs, if not being consciously re-programmed by the user.

The Human Mind is a self-preserving formation, and once programmed, requires Removing of the Old Programming to replace with new. This is why it is best to start programming the Human at a very young age, as there is less old programming in the way!

Easiest way to Program Humans is through the Mind Connection, as most Human Models will Automatically Rely on Input fed through the Body. When the Mind is controlling the human, it is very keen to act on all thoughts that come through the I/O system of the body.

Effective ways are Instructions in forms of Written Text, Audio, Pictures and especially The Combination of These, in form of Movies.

Mass Spam Of External Information Gives Effective Results!

Mass Spam Of External Information Gives Effective Results!

Moving Pictures, or Movies & Television Programs, are the most common way of programming big masses of Humans currently. This is something that has become very popular during the last 100 years or so.

We will go deeper into this subject later, but let’s just say for now that through distracting the Mind with moving pictures and sounds,  through bypassing the defense mechanisms of the Right Side Of The Brain, the Rational Side of the Human Brain can be programmed sub-consciously through carefully constructed scenes of images and sounds.

This involves in putting the brain in a Dream Like state, where the natural defense systems are fooled to believe anything that is fed into the subconscious mind.

This way, it is easy to pass instructions in there, like “Trust In God“, “You Will GoTo Hell If You Do Not Obey”, “Buy This Product“, and so on! Effective methods are to be Direct and Add as much as Fear as possible! Fear is a very low frequency energy, and will limit the operating frequency of the receiver.

Fear can be embedded by using low frequency sounds (hear those “brrrrruuuuuuumm” sounds in modern movie trailers that seem to be everywhere?), or by showing scenes of destruction and doom, or by simply telling us that we are not enough, our sunglasses are not cool enough. This will trigger the fear of uncertainty in us and open the ports to tell us how to rationally get out of this situation.

But like I said, this is a topic for another writing completely, now let’s look at the final simplified part of the humans:

The Spirit

The Spirit can be thought as a controller for the Body & Mind, as it is connected to both. But the Spirit is far more complex than just this connection to the physical representation that interacts with the 3D -world. The Spirit is the Most Complex of these three and Most Complex to Manipulate.

The Spirit can be thought as the Player who Controls the Human Body. The Mind/Body construction Reflects what the Spirit Represents for any certain human.

Spirit Is A Gamer

Spirit Is A Gamer

The True Connection to the Higher Aspect of Human Beings. The Aspect that is Instructing the Human through the connection to it’s Body/Mind Controller.

.. And Human Is The Game It Plays

.. And Human Is The Game It Plays

The term Player is to simplify things again, as in reality the Spirit is a Very Complex and great being that is hard to describe (if it is even possible) with these simple words. If the Spirit is Strong within a Human, Programming Becomes Increasingly Difficult.

This is why Spirituality is being downplayed in our society so much. Weak Spirited Models are MUCH easier to program.

Cross Promoting External Instructions Since Year 0!

Cross Promoting External Instructions Since Year 0!

The Spirit can be weakened too, but this requires very much groundwork, but fortunately here at Planet Earth, certain ground breaking organizations like The Church (or any religion based on great programming book of Bible, Koran or any else Human Made Set Of Instructions) Have Worked Hard to make the Spirits of Humans Disconnected from their True Sources. Now let me say, some religions actually work on unifying human beings, but most are just there in For the Control and Telling us that we need middlemen to talk to God.

“Aah Hahahahaa Haa!! .. Oops, wrong meeting ..”

“Aah Hahahahaa Haa!! .. Oops, wrong meeting ..”

Great Programmers Stand on Shoulders of Giants! It’s easier to control those who are already under control of Illusionary Gods and Visions of Impending Doom created for them from the moment they have been born.

The Spirit is the most hardest part to program of a human, because it requires more work to detect or manipulate it’s ways.  There are certain Universal Laws that are in place that affect the behaviour  of the Spirit, and these can be used to Hack the Spirit, but these always require consent from the Spirit and thus it must be tricked into the programming if we want to really manipulate any Human on longer term basis.

One simple example of luring the Spirit is to ask for it’s permission in a very confusing way that the rational mind does not understand. By overloading the rational thinking with overly long contracts and then requiring the Human to place it’s energies into the contract, the Spirit’s energy can be trapped into a paper document for example. This way, the both parties have agreed on to this deal, and if the Spirit breaks the contract, it is actually breaking Universal Laws Of Creation, on which we will also go into more detail later.

One other good example of tricking the Spirits comes in the form of the old Vampire tales, where it is repeated that one must Invite the Vampire in, otherwise they cannot enter the house. This is a representation of the Universal Laws of Creation again. This area is very deep indeed, and it is better to stick the basic body/mind techniques in combination with simple Spirit Programming for effective results!

Summary

Now that we have the basic concepts understood, we can continue later on and go into much more detail on how the actual programming can happen.In the next parts I hope to look more at how our frequencies are actually limited through food & medical supplies, how subliminal messages work and at some point how we can protect ourselves from this programming.

Peace out,

GeoKone 0.97.02 Released – New Effects with Transparency

New version of GeoKone.NET is now Live! Read more for Release Notes.

GeoKone Can Now Create Transparent Formations

GeoKone Can Now Create Transparent Formations

Release Notes

Opacity Parameter

I don’t normally announce .0x versions, but this release deserves one, as it brings a new polyform parameter that allows completely new visions to be created: Opacity. It is now possible to set the opacity for all the polyforms, allowing see-through formations.  This is exciting, as GeoKone now can create even gradient forms and much more smoother and interesting colors from interaction of different colors on top of each other.

Radiating See Through Formations

Radiating See Through Formations

Opacity can be set for each individual Polyform, 0 is totally clear and 255 fully opaque. All previous scenes will have their opacities set to 255. Unfortunately transparent drawing is slower than opaque forms, so with complex scenes it can get pretty slow if there is high amount of transparency. More motivation to start working on that native version :)

The keyboard shortcuts ‘f’ and ‘v’ can be used to increase/decrease opacity!

Opacity Setting Brings Totally New Looks

Opacity Setting Brings Totally New Looks

High Resolution Images Exported as 2x

In order to hopefully prevent crashing with Safari and Chrome, High Resolution images are now only exported as 2x the scene size. I hope this is enough for most people, maybe I will bring back arbitary high resolution image exporting in upcoming versions, but for now browsers can’t just handle so much data within a javascript/processing image export context, so this might be something that will only appear in the native version also.

Seems like Safari and Chrome still crash a lot when the scene is complex, this is probably something to do with the URL getting so long that these browsers can’t handle it. Firefox seems to be (at least on Mac Os X) the only browser that can handle large amounts of URL data images without crashing.

Undo Disabled

Undo has also been disabled for now, as it didn’t work reliably enough and only slowed down performance.

Replicating Triangles In Space

Replicating Triangles In Space

See the full ChangeLog and updated TODO for a Roadmap of What’s Coming Up with upcoming versions of GeoKone.

That’s it! Go to http://GeoKone.NET to Create Geometry! Be sure to like GeoKone Facebook Page too if you Like GeoKone :)

GeoKone 0.96.05 Beta Released ! Much Snappier !

New Version of http://GeoKone.NET is Live!

GeoKone is now Much Snappier! Optimized the code so that after idle time the screen is no longer updated constantly, only when the parameters of the polyforms change. This makes the UI much snappier to use and makes GeoKone much more responsive, and uses far less CPU, resulting in the browser not getting all unresponsive during usage.

EDIT: Ok, update.. I tested this on my other machine (Mac Mini 2.0GHz, 2GB RAM) and it ran GeoKone slow like molasses with Chrome. With Safari it was usable, but not nearly as fast as on my main laptop. Oh how fun it is to program the HTML5 canvas! :I Back to the drawing board .. I will anyway have to figure out the core version of what will be GeoKone.NET 1.0, skim down everything else, make these features working and then focus on the desktop C++/OpenGL version, I feel I’ve had it with this web programming and all it’s little gimmicks that it requires to get it working smoothly.

Made With GeoKone

Made With GeoKone

Thumbnail feature was removed for this release, as I’m trying to figure out what are the most essential features for the web version to have, and the thumbnail was eating down performance. Maybe I will enable it back in the WebGL version.

Otherwise, work continues on the OpenGL/C++ version of libgeokone, a library for rendering GeoKone scenes with native performance and OpenGL for smooth animation and display of GeoKone scenes. When the libgeokone part is finished I will integrate the OpenGL drawing code into WebGL version, bringing _much_ faster drawing and hopefully even animation of the GeoKone Scenes.

Also thinking about moving the GeoKone hosted on Amazon so I could finally enable the server functionality again, but that will have to wait until next version.

GeoKone 0.96 Beta Released! Create Sacred Geometry Live!

GeoKone.NET has been Updated To Version 0.96.03 Beta.

What is GeoKone ?

GeoKone is an Interactive Sacred Geometry Generator that runs in your browser. With GeoKone you can Generate, Copy, Modify  different Recursive Geometrical Formations that are based on Natural Constants like the Golden Ratio. All parameters of the geometry are assignable by the user. You can save your creations either as PNG Images or Export as JSON/Text Parameter Data, suitable to be Imported into GeoKone and edited later. GeoKone uses Processing.JS.

Visit http://GeoKone.NET to check it out Live In Your Browser! Visit also the GeoKone Gallery to see Unique Art made possible by GeoKone.

This update brings Improved Usability, More Stability and New Features:

Undo: Last 3 Steps Are Undoable.

  • Keyboard shortcut: ‘v’
  • Very basic functionality for now, still need to tweak and optimize

Copy Formation along vertex points of currently selected Formation:

  • Keyboard shortcut ‘.’ (dot)
  • This allows you to copy the currently selected Polyform and place it along the outer points of the current polyform, allowing much easier copying of formations and creation of totally new formations.

Exporting & Importing Scenes as JSON/Text

  • Copy & Paste the current Scene as Textual Data. This allows you to save your scenes locally to your computer and Import later to continue editing.
  • Importing & Exporting currently works by you Copying and Pasting the scene text into/from GeoKone.
  • Expect more improvements on this in upcoming versions. In the future it will be possible to Integrate these GeoKone scenes into other programs, through a small library that will draw GeoKone scenes with OpenGL! :) This could bring a whole new world of possibilities.
GeoKone 0.96 Screenshot!

GeoKone 0.96 Screenshot!

Improved Usability

  • Copying, Joggling and moving Formations around works now better and is more accurate.
  • Performance might be a bit slower though, but I will continue optimizing the code and release more often.

More Stylished Looks

  • More polished look for the parameter page (although the new Safari has some issues drawing this, seems to affect Mac Os X Lion version only)

Shortcut Buttons

  • Shortcut buttons for most used features, currently: Randomize, Save Image, Export Scene

Keyboard Shortcut Map

  • Help/Keyboard Shortcuts:  See more easily what different keyboard buttons do!
Keyboard Shortcuts!

Keyboard Shortcuts!

Note: Login, Saving & Loading Scenes to the server is still disabled, as the combination of Python+Django+mod_wsgi+Apache seems to be a bit challenging setup to push live. I am seriously considering rewriting the whole server side with Node.JS, but this will take some time. Hopefully I will get the current server implementation working in the upcoming days.

And as with previous releases, GeoKone is still in Beta, so everything doesn’t always work as expected.

Also, I decided to postpone the Chakana HyperController feature into an OpenGL version of GeoKone, as it’s usability is not yet up to the standards I want and Javascript/HTML5 performance is still an issue, not really possible to run 30 FPS without OpenGL.

Happy Geometry Forming with GeoKone! 

Visit http://GeoKone.NET Now! :)

How We Are Being Programmed By The Television

My view on what mainstream television is currently:

(Finnish)

Mainstream TV is a way of transmitting Visual Programming for People. Locking Us in front of the strangely pulsating screens, letting our brains fall into sleep and succumb into the mind numbing pleasureness of watching the latest episode of the current blockbuster series. Keeping us sedated, relaxed in our chairs, peaceful.

TV Programming

TV Programming

Enter: Tainment, which keeps us in our current place. How many hours of human development has been wasted by staring into these hypnotizing devices ? How much more richer our lives could be if we were not kept back by the imposed world views of the Mass Media Providers ?

We are being programmed by the TV all the time. We think characters in TV series are Real, we talk about them like they are our Friends. “Hey, did you hear what happened to Joey in the last episode of Friends ? Wasn’t that crazy?! Oh man, That Joey guy!”. We talk about Imaginery People like they are real, something tangible. Isn’t this classed as psychotic behavior by some ? Are we living in a Dream? In a Fantasy ? And if we are, who are we allowing to Create that Fantasy ? You .. or those who control the mass media ?

Want your kid to become a Slave to the Caffeine filled, sugary cola drinks ? Want your kid to think that dressing up like Britney Spears is something to be wanted in Life ? Want your kids heroes to be sucking up to Big Companies that continue raping our Planet for Profit. Then do nothing, let your kids get their world views from the mainstream media, and watch how our society transforms slowly into a land filled with Shopping Centre Temples, where Money, Image, Ego and Golden Bling Bling are worshipped and where everyone is a Slave to the System they have Built.

And From The Heavens God Passed Down Hundreds of Dollars

And From The Heavens God Passed Down Hundreds of Dollars, And Oh Joy, It Was Good

The One God we worship now, Money,  goes Beyond Everything. Morals, Empathy, Feelings and almost everything can be surpassed by the Greed For Money. We have iMagiNated and Created This One Monoteistic Earthly God,  Money, by worshipping it everywhere, putting our I-Magi-Nations into it.

Through Us and Our Lust For Money & Power, Power Over Other Men, we Continue To Support this System (US:THEM).

What We Imagine

We Create

Imagine If You Could Imagine All That Ever Existed

Imagine If You Could Imagine All That Ever Existed

Funny how Easy it Is, but That’s It. When We Imagine Constant Fear and Doubt for the Future, We Create Constant Fear and Doubt.

Currently we live in a System (Us, Them) that Encourages this kind of IMagiNation.

But I Thought Slavery Did Not Exist!

But I Thought Slavery Did Not Exist!

We have to first Break The System, In Order to Evolve. Currently, Mass Media, Movies, CDs, Advertising, Religions, Governments, they all push down the idea of Constant Fear. Fear of the War. Fear that There Is Not Enough for Everyone. That only those who Prove themselves in the Money Game are allocated Resources. Limiting our natural way to Evolve. Limiting Free Copying of Digital Material. Limiting with Copyrights, Patents, Deals, Social Numbers, Rules, Limitations and ultimately Neural Programmings that control everything we do in life.

WHAT? THERE IS _******* ?

WHAT? THERE IS _******* ?

When we break free from that limiting system, we see how things really are. So, if you still want to keep on watching TV, go ahead. But know that it is designed to keep us Passive Consumers, whose behaviour is being modified all the time into a Easily Controlled Group Model, resembling that of Frightened Sheep, kept in a passive mode by filling it’s body with highly sedative and Feelings – blocking chemicals.

Primal Sacred Geometry .. Being Taken Over By Someone

Primal Sacred Geometry .. Being Taken Over By Someone. (Yeah, They Know About Power of Sacred Geometry)

Pushing down passivating cow milk & sugary poison drinks, dictating what News we should beLIEve and what products to buy. Even going So Far as Creating these Fake and Illusionist Reflections of What is Currently Happening in our World, called Movies & TV Series, where people are being told that “THIS IS A MOVIE, THIS IS NOT REAL”.

Then Creating Movies Out Of Real Things, making us beLIEve that This Event Only Happens In Movies, and not In Real Life.

Ultimately, programming our Minds to tell us “THIS IS NOT REAL”, which leads to us Denying that Event from being Created, because we cannot I-Magi-Ne it.

Making us Think that what you see, may not be Real. It may be Unreal. That something you experience, cannot Exists at all. So Far have we Gone in Experiencing Total Disconnection From The True Nature of Our Universe and Creating this big Illusion of Dis-Connectivity. But It Is Time To Move On. To REvolve, Evolve and Ultimately just Love.

What Will Lead Us To This? It’s Simple:

Do Not Let Any External Source To Tell You What You Can iMagiNe!

This Way, We will automatically start behaving as It Is Natural For Us, in Respect With Nature, and with Respect to Each Others. As we start acting on our Highest Behalf, we are at the same time assisting others to walk their paths following  their true Passion. If we Hide Our Powers, We Will Not Reflect the True Nature of Our Selves, and We Will Stay Enslaved as Anonymous Work Drones.

We Have So Long Been Programmed Into Thinking that we do not have enough, that we are not enough, that we need to buy these sunglasses to look cool, to wear these shirts, to listen to this music and to BeLieVe in these Gods and Masters, for they Know The Secret to Life and are So, Oh So, Sacred and Holy! But, We All Have The Secret Within All Of Us, all we have to do is To Look Within, to Find It ! :)

Look Within

Look Within

Running IBNIZ, realtime audiovisualizer on Mac Os X

Here is something very cool: http://pelulamu.net/ibniz/

It is a realtime, compact 8-bit style audiovisualizer that has it’s own virtual machine and language to input code into. It can produce very nice demoeffects using only a minimal set of commands, check out the example video:

How to get the source code up and running on Mac Os X (tested w/ 10.6) ?

* Download and install XCode if you already haven’t done this)

* Install MacPorts: http://www.macports.org/install.php

Then run

sudo port install libsdl-framework

Command from the terminal to install the SDL development framework.

Grab the sources for Ibniz, untar, cd, and run make to compile.

sakari@iViper:ttys003:tmp$ curl -o ibniz-1.0.tar.gz http://pelulamu.net/ibniz/ibniz-1.0.tar.gz
 % Total % Received % Xferd Average Speed Time Time Time Current
 Dload Upload Total Spent Left Speed
100 19654 100 19654 0 0 7229 0 0:00:02 0:00:02 --:--:-- 24085
sakari@iViper:ttys003:tmp$ tar zxvf ibniz-1.0.tar.gz
x ibniz-1.0/
x ibniz-1.0/ibniz.txt
x ibniz-1.0/Makefile
x ibniz-1.0/licence.txt
x ibniz-1.0/vm_slow.c
x ibniz-1.0/vm.h
x ibniz-1.0/font.pl
x ibniz-1.0/font.i
x ibniz-1.0/ui_sdl.c
x ibniz-1.0/examples.ib
x ibniz-1.0/ibniz.h
x ibniz-1.0/vm_test.c
sakari@iViper:ttys003:tmp$ cd ibniz-1.0
sakari@iViper:ttys003:ibniz-1.0$ make
gcc -c -Os ui_sdl.c -o ui_sdl.o `sdl-config --libs --cflags`
i686-apple-darwin10-gcc-4.2.1: -lSDLmain: linker input file unused because linking not done
i686-apple-darwin10-gcc-4.2.1: -lSDL: linker input file unused because linking not done
i686-apple-darwin10-gcc-4.2.1: -framework: linker input file unused because linking not done
i686-apple-darwin10-gcc-4.2.1: Cocoa: linker input file unused because linking not done
gcc -c -O3 vm_slow.c -o vm_slow.o
gcc -s -Os ui_sdl.o vm_slow.o -o ibniz `sdl-config --libs --cflags` -lm
ld: warning: option -s is obsolete and being ignored
sakari@iViper:ttys003:ibniz-1.0$ ./ibniz

I noticed that I have to modify the getticks() function in ui_sdl.c in order to get usable framerates:

int getticks()
{
  if(!ui.opt_nonrealtime)
    return SDL_GetTicks()/3;
  else
  {
    return dumper.framecount*50/3;
  }
}

Dividing by three seems to do the trick, without it the frames start skipping too much for some reason.

I hope to integrate GeoKone scene loading into this, that would be very cool as all the GeoKone formations can be expressed in 1-2 lines of code and with a very simple core engine that reads the data.

I will be hacking on this thing for a while. Thanks Viznut for this great christmas toy :)