Launched OmniGeometry :: Going native with GeoKone

Reached GeoKone version 1.0 ! ^_^

Realized I didn’t write anything in my blog about our new sacred geometry software website:


OmniGeometry is the result of 6 years of work, culminating in what is we believe to be the ultimate sacred geometry software on this planet.
GeoKone 1.0.2

GeoKone 1.0.2

OmniGeometry is a package of GeoKone 1.0 + complete set of tutorial videos to help you get on speed on how to create your own sacred geometry.

 We’ve been working on this together with my partner in business, Gustavo Castañer. Gustavo found me last year, and asked me to teach how to use GeoKone. We did some private lessons, and after some time he convinced me to work on more tutorial videos to really make a product of GeoKone. We decided to start working on this together, as Gustavo saw the potential in the software and wanted to help create a commercial product together with me, and also as a means of  support us to continue working on this and future projects through income of selling the software.

Together with Gustavo we created the website, set of tutorial videos and the new base for what is to be the future of sacred geometry software. It was a real pain in the ass to combine GeoKone with a WordPress installation, but in the end the work was worth it. Go check out our website now: to learn more!

Towards a downloadable desktop application

After the launch, the #1 request from users and potential users was: Is there a downloadable version ?

Currently GeoKone is implemented with Javascript + HTML5 & Node.js on the server side. This has many benefits, like being able to run on any operating system that runs a modern browser, anywhere, ubiquitously. No need to install anything, updates are automatic and so on. But this has downsides too. This means you have to have an online connection access the application, and also we’re not getting all the performance we could be getting with the browser being between the hardware and the application.

I was pondering whether we should just package the HTLM5 application with Electron, but decided that would take at least 2 months to implement, and I wouldn’t personally be happy with the results, as I’m already also pretty tired working with web technologies. Ultimately I decided, it’s finally time to start working on a native, downloadable desktop version of GeoKone.

Turbocharged, slick, beautiful native application

Since the beginning of GeoKone, I always had in mind to implement a proper desktop version. I had been looking at QT5 for a really long time, even learning it and doing some simple UI prototyping, but it just didn’t feel like the right thing to do earlier. Now the time feels finally right. Most of the problems have been solved with GeoKone 1.0, so it’s “just” a matter of porting to QT5. Happy and inspired to start work finally on a native, downloadable desktop version of GeoKone ! Target platforms are going to be Mac/Win/Linux desktops.

Also now I have experience to undertake this, after working over 2 years on the Geometrify 3D geometry engine. This native version will still be fully 2D, Geometrify will be the 3D version once it’s done, but that’s another story completely.

This is going to be one slick, beautiful, turbocharged version of GeoKone! Hope to release within 6 months at least a beta version for early users to test out.

Anyway, until then, work continues! We are committed to this, and will provide people with the best experience of creating sacred geometry.

Entheogenics and communicating with plant spirits

This piece is a continuation on my piece on dealing with depression, which you can read here.


I am tired of not speaking about this subject, as I have found these things to be very helpful for discovering myself and healing from deep trauma, and even physical illnesses.

I feel it is important to discuss things that are considered taboo, in hopes of breaking more of the blockages that surround discussing these topics. More this writing is about sharing my experiences, and hopefully shedding light into subjects of controversial matter, to help break them out of the realms of something that should be shunned upon.

And to cast more light into the deeper meaning of what is to communicate with plant spirits, as I walk the fine path between the spiritual and the physical, that is my role in a way.

Breaking communication barriers

George Orwell wisely said something along the lines of: “Control their language, and you control the people”.

This can be said about the topic of entheogenics (literally meaning “generating the divine within”), referring to plant medicine that is used in a healing and spiritual context. 

Many of which have been made illegal or patented by big medicine companies.

Making things illegal can effectively prevent discussion about these topics, as people are afraid to speak their mind in the fear of the consequences. This is a very effective form of mind- and nation control, as those things that cannot be discussed or thought about, could as well as not exist. 

I believe in free speech, free expression of anything and everything if its for the highest good. This is why I also feel it is important to discuss even those things which are taboo, illegal or just blocked by man made rules.

Rules that are completely made up by other people, people who are no more intelligent than you and are and in no way better than you. Rembering again the wise words of Terence McKenna: “Nobody is more smarter than you”.

With entheogenics, I feel the main reason these plants have been made illegal, is the fear of the controlling factions, of people discovering natural healing methods, our true connection to nature and each other, and ultimately, the fear of the realization that we all humans are one.

When we realize that we are all one, nations, rules, laws, politicians, kings and queens disappear, their power dissolves. It has been a very effective method in controlling our thoughts, but no longer can this method survive, as the truth is coming here more powerfully now, more enlightening and ultimately along it dissolving all that is un-truthful.

It is time to bring that to the surface which has been hidden and again reveal our connection to the nature and to the cosmos around us.

This writing is part of what has helped me re-member this connection to everything and all that is. Part of what has helped me discover who I am, to heal those wounds deep within me, and ultimately to remember who I am.

I also want to state out that currently the most powerful tools I have in my arsenal are meditation and living in the moment, and trusting the process of flow. Entheogenics have definitely helped me break down those shields inside me to see this way. Sometimes you need dynamite to break down hard walls.

‘Here be dragons .. ‘

I do not recommend anybody take any entheogenics without consulting somebody who knows more, as there is the very real possibility of getting more lost than finding yourself. I have had to find that the hard way, not with mushrooms, but especially later with cannabis, and seen also from friends around me that it’s very possible to lose part of yourself in the process, especially if you want to go too far and desire to know too much.

It’s not something you can easily do, as natural plants usually give you a warning if you are venturing too deep, or pushing it too much, but out of ignorance you can always not listen to the warnings and push deeper than is good for you. I’ve been on the edge couple of times, luckily my intuition has been in most cases sensitive enough to pull back and not venture too far, but I have sensed that there is the definite possibility of losing something, experiencing something that cannot be un-experienced and seeing “too much” at one time.

It’s beneficial to have humility and respect when approaching these plant teachers. Respecting these plants and their spirits, and looking into tradition for clues how to approach this healing, but not blindly following tradition either, as in the western world we don’t have the same context as many people who still natively use these in their culture have.

In this text, I am exploring and sharing experiences with my relationship with the plant that helped me realize that there are such things as truly spiritual experiences, and which helped me remember that I am the Universe, not just an powerless experiencer going through a ready made world.

Food of the Gods

I am talking about the children of the earth, those small mycelium rooted friends of us, known better by their street name magic mushroomsPsilocybin mushrooms, or Food of the Gods, as termed by the late Terence McKenna

My first experience with plant medicine was with mushrooms. One day a good friend came over, and told me he just happened to have some. I was 26 then, I didn’t have any experience of any mind altering substances other than alcohol and some cannabis I had tried with some friends couple of times, but not knowing how to inhale properly and not resulting in a proper experience.

I was intrigued, I had no idea what the effects of eating such things was. I felt a somewhat mystical feeling, I had heard that people eat them and feel funny, see colors and such stuff, so I was interested, why not, let’s do it.

We agreed to do this with a group of friends, most of who were first timers also. We did not really prepare in anyway, except we knew not to eat heavily before and had made sure we had nowhere to go that night.

Eating a small dose of dried mushrooms, maybe something between 1.5 and 2 grams, resulted slowly in a state where my whole reality was changed, and I could see things from a completely new angle. I’m not going to go into the details more, as other people have written much better about the effects, but I want to share one profound realization I had.

Universal connection

I found something very deep inside me. Something Universal, something that was connected to Everything. I felt that I was this Universe that I inhabited, instead of just living in it.

Blue Nebula

I still remember that moment vividly, what I saw and felt, a blue starry nebula with a dark starry background, filling my vision completely behind my eyelids, and realizing, “I am this”.

I was then still struggling with dark thoughts, thoughts of suicide and escaping everything, and I was this very rational person, relying on logic and my intelligence on most things. This realization gave me a grand feeling of hope, that I’m not just my thoughts, that I am not alone, that I am something greater than I was used to thinking,

That I am not just just this small human, but my existence has meaning and it is meaningful. The very profound action of just being able to exist felt very important and unique. That I don’t have to try any harder and that I’m perfect. Just by being, I am complete.

If I am all of this I am experiencing,  how can it not be perfect ?

Questioning everything

This was the most memorable revelation from that experience. That there is so much more than I had been told by everybody around me. It was like somebody had taken the veil off from my eyes for a while, showed me a glimpse of what is really true in this world and then put the veil back on.

This sparked the question:

‘What the heck is going on here actually ? How can I feel like I am the Universe, when I am just a human ?’ 

This was what I would call my first real spiritual experience. I got very interested in spirituality, religions and shamanism, read a lot of books and writings on the subject, scoured through online forums seeking answers to my questions and wrote down pages and pages of thoughts on the subject.

Now that I’ve had experience with other entheogenics also, and a more holistic view of the whole process, after picking up daily meditation and writing about these things, discussing, experiencing, reading and digesting the things I’ve gone through over 10 years, I’ve come to a sort of conclusion for now that psilocybin mushrooms are teacher plants.

Cap-hatted teachers

More teachers than healers, although great healers too, but their role seems to be more of a information carrier, presenting us a way to connect to their vast mycelia network of consciousness, and their deep knowledge they have developed over millions and millions of years of existing within the very soil of our planet Earth and even other planets and galaxies.

On what information do I base this ? On direct communication and discussing the topic with the various mushroom beings I have been in contact with.

I say beings, as they too are conscious lifeforms, like you and me. But they are very different, their physical body not resembling anything of ours, but more like a network of connections on a physical level, and we are just digesting their sexual organs, their means of reproduction that pops up to the ground level.

They have told me directly where they come from, shown me in visions. The spirit of the mushroom can communicate with you, and you can communicate with it. Something not really talked about in many places, but it is definitely possible and even preferable, as the dialogue helps the healing and teaching process.

Opening up the healing interfaces

By letting go and allowing the plant spirit to heal and teach on all possible levels, for the highest good of yourself, is a revelation that came to me later in my journeys.

First I was sort of a passive experiencer, communicating with the plants along the journey, but not doing it in a more conscious way right from the start of the experience.

Later I realized that by allowing consciously the plant to heal you, on all possible levels and interfaces, opening up all the methods that are for the highest best of yourself, by saying this aloud to the plant in the beginning of the session, miraclous things can happen.

By consciously opening up the interface and allowing the healing, the plant can work much more directly with you and let the healing through in much more efficient ways. It’s like opening up the firewalls of your body and soul, it requires trust and letting go of all the shields, but according to my experience it’s definitely worth it.

Different teachers

Some of these beings have shown me their intellect in ways that feels like they are much, much more intelligent beings than we humans, even thousandfold. I say some, as there are younger and older mushroom spirits, as there are young human souls and old human souls, with various levels of methods and experience under their belt so to speak.

The teaching and healing seems to also be relative to what you can accept and input on your own level, and also on what wisdom the particular mushroom spirit has gathered during it’s development as an soul. Some young souls can appear naive, trying to help you their best, but not really grasping the process, and some old soul mushrooms can be truly marvelous in what wisdom they can impart on you and what healing methods they use.

One particular old soul mushroom healed me from the very edges of my whole being, not only on a physical level, but I could feel it working on all of my astral bodies at the same time, starting from the very edge of the existence of my soul, and somehow this healing then reflected back to my physical body.

That felt truly amazing, as the mushroom being somehow transferred my whole consciousness to feel how it exists during this process, in order to achieve this. Encompassing my whole being in the way it felt life, allowing me to transform into this mushroom for a while somehow magically. I could see and feel the mushroom spirit directly in front of me, feeling like I was this spirit, not separated and experiencing, but becoming it, allowing the plant to directly take over for a while and seek out the places where it could help me for my highest good.

This particular experience felt very alien, very technological, like experiencing and transforming into a being one hundred thousand times more intelligent than what I’ve ever experienced, feeling directly what it felt to be this particular entity in some very direct and odd way.

I was totally humbled by the experience, and the realization hit me of how limited our human experience still is compared to those who have truly went beyond this physical dimension. I’ve never felt anything like that before or after.

Mushroom origins

Some of these beings have told me that they have travelled to this planet from a far away place, shooting through our atmosphere, and taking root within the soil of this planet at a time when there still was no human life even on our planet. Mushroom spores have been scientifically proven being able to withstand the high pressure, heat and coldness of being able to fly in here from space.

Explaining to me how their intelligence through the mycelia consciousness network spans multiple planets and even Universes. Showing me how these antennae networks are all connected, and can communicate telepathically, transferring information from the very edges of our galaxy. Spreading galactic wisdom and cosmic consciousness to humans and other living beings here on planet Earth.

Conscious communication interface

For this kind of direct communication be possible, my theory is that the mushroom has developed the psilocybin molecule, when ingested orally metabolizes into psilocin, which closely resembles the serotonin molecule, our natural neurotransmitter.


The psilocin is thought to bind onto the same receptors in our brain as serotonin, allowing somehow a direct interface and way to communicate with us through the receptacles in our prefrontal cortex.

I speculate that the mushroom has developed this molecule also to communicate with other plants around it in nature, as it is highly dependent on trees, soil and other vegetation to give it food and the proper environment to grow. It has been proven also that mushrooms can clean up soil and remove toxins from their environments just by absorbing those into their flesh and transforming it somehow, so it is beneficial for the host plants also to let the mushroom to grow in their bodies and surroundings.

This interface, I feel, allows the spirit of the plant to communicate also with us, if we allow it, in a state of union, without the need for traditional spoken language. You can resist the experience of course, and that can lead to a frightening and bad experience, but if you work with the plant and allow the healing and coming together to happen, amazing things can manifest.

For example, one particular strand of mushrooms focused purely on healing my teeth and mouth area, working on that particular area for an hour or two, while I had to lay there in complete silence and acceptance, feeling how something that had stuck between my teeth was being removed, dark thoughts and dark words that had got stuck somehow inside my mouth. Using some sort of spiralling technology to pull out the heavy energies, I could see these rainbow spirals that the mushroom spirit was somehow utilizing to put the energy to movement and transform it into light.

In other examples, they have helped me to show how my brain works, given many direct teachings about how our society operates, how the universe is mathematically constructed and much more that I won’t go into too much detail here.

Revealers of truth

These plants can also teach you things that shake the foundation of our very western so-called-civilization, and can cast light onto the truth behind the very core structures that drive many religions and other control based organisations.

This is one of the reasons I believe, that the powers that be, have wanted to ban and kill paganistic and shamanistic mushroom rituals that have already existed for thousands of years in our cultural upbringing, and have possibly been even very closely knitted together with the whole evolution of our species as humans.

The reality is, that we have lived with these plants and their spirits for as long as we have existed. There can be found proof of ritualistic usage of mushrooms and other entheogenic plants from all around the world, in all cultures, in all times that we have proof from in forms of writings, images, songs and stories.


Where ever there have been humans, there have been shamans, healers, people who communicate with the nature around the tribe, the plants, the spirits and with the galactic beings who work together with us.

This knowledge has been widely killed off by the major religions, instead offering in place control placed, fear based, monoteistic, un-natural belief systems with some truth in them but major factions twisted and darkened away from the original truth, modified to only serve the purpose of the control structures built around the need of people to seek the divine withim themselves.

The time for these factions is slowly coming to an end, and part of this process is the legalization, research and study of entheogenics to be used in healing and learning contexes.

Cost of banning discussion

I’ve gotten considerable help from my experiences with various other teacher plants and mushrooms, but not at all without a cost.

As speaking about these things has been made difficult, it can result to not knowing what to do, not having a tradition or a framework around the healing, easily resulting in not-so-optimal results sometimes and having to figure out things by yourself, without having a teacher showing how to do it properly and how to bring back those teachings into your life.

I would hope that by opening more about my experiences, and breaking through the barriers of communication, I can also inspire others to write about their experiences, and share their insights, so that we would have more knowledge and wisdom on how to approach this subject now and in the future.

Currently it can require considerable courage to see beyond the stigma, as we have been brainwashed to think that only medicine that comes in pill form from a doctor is the correct way, but as we are learning more and more, this not the truth also anymore.

It feels we are at an point in our evolution where we are looking back to nature for the methods on how to continue living on this planet, rational thinking alone cannot cut it anymore as we have seen from the results currently plaguing our society.

I see a bright future for us, and feel we are again remembering who we truly are. In this process, the natural healers can help us regain our connection to our true selves. It is not something that should just be dismissed and put to the side, as many people really need the help these teachers and healers can offer, in order for us to evolve again as a species towards something greater, more unified and even regaining back our cosmic connection.


I hope this writing gives some insight onto what the mushroom plants can offer us. I plan to continue writing more about these subjects, from the only viewpoint I have, deep and to the core, discussing also about other teacher and healer plants.

I wish to encourage people to share their experiences, and open up personally, as this is the only way for us to break the code of silence.

By taking action and doing, you are always opening up paths for others, who think in silence, to take action too! ^_^

Dealing with depression

It’s easy to not talk about certain subjects. Depression is one of those subjects for me. This feeling doesn’t seem to go away, so I want to try writing about it, bringing it out. Maybe that will help. Lure that bastard out into the light.

I’ve lived with depression since I was 14 or 15, so about 20 years for now. At some point, my world started turning dark. I began to experience periods of times in my life I could do almost nothing else than lay down, or just cry and go into this slumber while being awake, laying in my bed just wanting to let go of it all. Slowly this transformed more into periodical states of just feeling depressed, but I still remember clearly those first stages of just laying down and not having the energy to do anything.


The feeling of depression would come without any warning, the day before I could be feeling perfectly fine, fun, even enjoying life, then I wake up and nothing feels good, sorrow fills my whole being, usually accompanied by the immense weight of being crushed under all the feelings I have.

The overwhelming pain of just drowning into sadness, despair, death and the want to leave this place. The ever welcome feeling of being completely alone and that nobody cares. All social interactions become numb, difficult, non-relevant to anything. There is nothing but deep and wide blankness accompanied by not caring about anything or anybody else than just dealing with this state and surviving it.

All expectations from others and myself can go down the drain instantly, I couldn’t care less about finishing or doing something. Even things I feel passionate about, suddenly those don’t matter at all.

This has made it always difficult to go to work, or school, or meet people, as I have no idea any given day if I’m capable of even leaving the house or getting up from bed. Canceling meetings and scheduled appointments used to be a norm for me, and still to a degree is, which can lead to a spiralling feeling of shame for not being able to fullfill my duties.

This is part why I’m writing about this subject, to maybe let those around me see and understand what is happening to a person in depression, and also to share the feelings of what is going on to a person dealing with depression, as this topic isn’t publicly discussed much.

Realizing depression

Many times this feeling brings with it deep wanting of to leave this place, to completely be void of any feelings, while paradoxically the emotions seem to be all that exist in this state, taking me with them and ruthlessly dragging me into the bottom of that cold river where I am completely alone in my sorrow, not seeing any solutions to the situation and feeling like being drowned into the abyss of eternal sadness.

Where these emotions come from, there seems not to be any one source, they just come and go as they please, as if they had a life of their own, which makes the situation even more difficult to rationally understand or see how to avoid and how to deal with it.

It took me a long time to even realize I was being depressed. Nobody really talked about depression around me or in the culture I was brought up. The aknowledgement was there that a such thing exists, especially in Finland it’s a big thing, but it wasn’t really talked about.

Maybe it is somehow shameful, a taboo, a sign of weakness to be depressed, so you don’t talk about it, just suck it up and get better and do your work seemed to be the general solution on how to deal with this.

On my own

Nobody can fix depression for you. There is no way. This is how I’ve always felt. Somehow in this state there is no way to trust somebody else. I’ve always felt I have to fix this myself, by myself and with my own ways.

Somehow deep inside me a part had always known that depression medication was not for me, even though my mother many times tried to insist me on taking them, a part of me was very strong in not going down that path, some part of me somehow knows that medicating with these unnatural methods is not good for me.

During these times I had no idea about meditation, mindfulness or nothing that could be considered spiritual, except long distance running, which I only later realized was somewhat of a spiritual practice for me. I was constantly dealing with dark thoughts, thinking about killing myself, leaving this place for good and just wanting to get away
from it all.

Finding a way out

Today I am happy to say that I’ve started to find a way out of my depression, after dealing with it for nearly two decades. I’ve discovered methods of dealing with the feelings, and how to heal myself, and how to re-program my thoughts.


The path has not definitely been easy, it has been one full of pain and unorthodoxical methods of seeking the root causes. I kinda wish somebody had been there for me to teach me, to show me how to do it better, as many of the paths I’ve taken have proven to be difficult and even hindering my progress. And I’ve had many teachers too, so I am thankful for that.

But I am who I am, and I wouldn’t be here without going through all that darkness. I am happy that light has grown immensively inside me during the past years and I’ve finally started to figure out what the root cause for my depression has been.

Mainly it has been doing with trying to adapt to my surroundings, and not being who I really am. I’ve now noticed that this pressure to be like others, and not fitting in, has been a great de-pressive force in my life. I can no longer succumb to the expectations of others, but be more brave, more open, more free, more sensitive, more powerful, more fearless and ultimately more honest to my self, of who I am and what I represent.

It has not been easy, as my true self is something that differs so much from the normal way of things. But I am happy I have found through the act of expression more those who resonate with the same frequency, and hope to find even more those people who express the same energy as I do through the act of opening up and being even more honest and brave.

Methods of healing .. to be continued

The various methods of how I’ve reached this state are something I want to write more about it in the upcoming posts.  Consider this posting as a preface for those writings.

Thank you for reading, this was Sakari for now, until later!

My Mission :: Awakening to Sacred Geometry


Hello, time for something more personal this time.

I wanted to share something more personal, some of the motivation that has lead me to work with Sacred Geometry and motivation behind on my mission to continue bring people direct experience of what I believe is the creation language of our Universe.

From now on, I want to share more, be more truthful, more direct, not think so much about what I put out.  Bom shaka bom!

Progress update on my 3D Sacred Geometry Engine

Fully focused

For the past two months I’ve been blessed to focus fully on my 3D Sacred Geometry engine, called PsiTriangle Engine. This engine is going to be the basis for our upcoming 3D Sacred Geometry Creation program, called Geometrify: Creator.

Beginning of the year I was working at Vizor (, for a while, but that lasted only for 2 months as it was not really something I truly loved doing.

But I got to learn ThreeJS (a javascript 3D framework) there and also how to build a 3D engine more, so this gave me good insight on how to continue with my own engine.

Getting closer to the metal

I’ve been now focusing on improving my engine since then, getting more performance out of the GPU and calculating as little as possible on the CPU.

The CPU -> GPU bottleneck is a real issue when working with dynamic geometry, optimally keep everything in the GPU memory and not transfer it from the main RAM to the GPU, as it’s a big bottleneck for performance.

Learning the tricks of GPU programming and getting to really feel the power of the GPU has been a marathon run, but I’m finally approaching the performance I’ve been looking for.

Doing complex things is easy, but just narrowing down to the simple essentials, the least amount of calculations needed, is difficult.

Putting my engineering skills to their use

I’m an automation engineer, and working with 3D equations and math is really an area where I’m starting to see use for that education. The education basis has given me the insight that I can understand and dissect any problem, if I just keep drawing and calculating on paper long enough.

Just draw it out

Just draw it out

I’m pretty happy now that I got that education, as without it I wouldn’t have probably have the system in place to work like this (*thx math teacher, Pirkka Peltola)

Fast line drawing

In the last weeks, I’ve been completely re-writing my line drawing algorithm to utilize the GPU as much as possible.

Previously I had ported an algorithm by Nicolas P. Rougier from Python code to C++ (based on his paper here:

But this case was just too generalistic and did too many calculations, and took a long time to upload the vertexes from the CPU to the GPU, which really killed performance.

So I decided to just rewrite from the ground up. Good tool to prototype graphics drawing is, so I first implemented the algorithm with Processing, then when it worked and I understood the process, started porting it to GLSL shader code.

Tesselating Circular Polylines

Tesselating Circular Polylines with Processing

Getting to know the Geometry Shader

There exists geometry shaders on modern GPUs. With these, one can calculate vertexes completely on the GPU, utilizing the massive parallelism of modern GPUs.

I started my line drawing re-implementation using only the geometry shader. Here you can see results for that:

Here all the lines, segments and origo points for the circles are all calculated on the GPU, nothing is done on the CPU except the origo point sent to the shader.

This is pretty great, but there are limitations. First, the geometry shader has to re-draw all the shapes, calculate all the sines and cosines for each line segment, all the time, everytime, on each frame. This is slow.

Second, the geometry shader can only output a limited amount of vertexes. With my GPU, that limit is 256 vertexes of vector4 components. So it’s not really much, can’t do deep recursion with that.

Bringing in the Transform Buffers

There also exists a thing called ‘Transform Feedback Buffer‘, which basically means you Transform (calculate geometry) and put the results in a Feedback Buffer (store), which you then use to actually draw (read buffer).

These buffers are then only updated when changes occur, and not on beginning of each frame like with purely geometry shaders.

This got me already much better performance:

Much better, but I was still calculating stuff recursively, storing each circular formation as a separate copy of my base class.

This worked well with http://GeoKone.NET, as with software rendering all the data stays in the main memory. But with GPU rendering, we really want to minimize the amount of things calculated.

Drawing as little as possible

At this point, I decided that I know what I want to do achieve, and to get there, I really need all the perfomance I need, to make it as smooth as possible.

To do that, the current model of doing things recursively, ie. where a class instance stores num_points class instances and visits each of them to draw their data, continuing down the path recursively with a parent child model, really didn’t work anymore with the GPU.

With GPUs, what seems to work best is doing things in a linear buffer. We want to have all data in a continuous pattern, so you can just loop through it when calculating and drawing, with minimum amount of branching and changing buffers when doing that.

Basically we just want to blast the data to the shaders, so they can work on it as parallel as possible, because that’s the strength of the GPUs.

I’m still seeking the best way to do this, but with this model I could finally reach dynamic geometry in 3D space with similar performance as with GeoKone.NET. This is my latest update, showcasing dynamic manipulation of 2D plane sacred geometry in 3D space, that will be the basis for Geometrify: Creator.

Getting there  :)

I’m developing this engine on laptop GPUs, my faster Macbook Pro having a Nvidia GT750M 2GB card, and my home computer having an ancient Nvidia GT330M/512MB.

So I really also have to figure out how to make this fast in order to develop, which is a good thing :) But I can’t wait to test this out on modern beasts of GPUs, which are easily 30x faster than the one on my older laptop.

Anyway, development continues, if you are interested in more updates, follow me on Twitter:, I’ll be updating there more frequently.

Now peace out, and bom! ^_^

GeoKone 0.99.66 released ::Set Background Image & Continous Tracing

GeoKone.NET was just updated to version 0.99.66.

Background Image Setting

This version (actually previous version already) brings support for drawing over a background image, like demonstrated here:

Remixing Geometry over a image from

Remixing Geometry over a image from

Using a gradient as the background

Using a gradient as the background

Saving the background image is not yet supported, but you can always load it again after loading the scene from a local file. The background image setting is smart, so you can import any size file as the background and GeoKone will automatically scale it to fit the best target, and you can select  how to fit the image to to your scene.

When exporting PNG images with background, the background images original resolution will be preserved, so you can set a high resolution image as background and then draw over it, and get same quality output if exporting a higher resolution PNG image.

One cool thing to try out also is exporting your current scene as PNG, then setting that image as your background and continuing drawing over it :)

Continous Tracing Mode

When the ‘tracing’ mode is set, toggling the animation will not clear the trace buffer anymore. This means you can pause the animation, modify your formations and resume animation to continue tracing over your previously traced buffer.

This enables to create this kind of beautiful images more easily:

This was created by tracing the original formation, pausing animation, re-scaling, continuing animation and repeating this pattern

This was created by tracing the original formation, pausing animation, re-scaling, continuing animation and repeating this pattern


Updated Help Page

Be sure to check out the updated Help Page also to get a better idea how to use GeoKone.


Complete changelog for versions 0.99.65 & 0.99.66:

  • Fix bug with topmost buffer not always clearing when switching layers and
    toggling mod all on and off
  •  Update PDF download prices to be slightly more supportive toward development of GeoKone ^_^
  • Update help page
  • New dialog style login page
  • Update styling of signup and forgot password dialogs
  • Clean up the code a lot
  • Add buttons for animation and tracing on the top menu to make them easier to find
  • Remove the toolbar bottom indicators, replace with the led indicators
  • Style minor things to be more compatible with Chrome
  • Continous tracing drawing. Traces are now drawn by default continously, toggling animation will not clear the trace buffer now, only when you toggle tracing is the buffer cleared
  • ‘Help/Send Feedback’. Send direct feedback to me.
  • Fixed the right menu appear animation
  • Remove the stupid blue outline coming around the canvas on Chrome and Safari
  • Fix keyboard focus icon not showing with Safari
  • Fix export image to show proper preview when tracing off

Little bit closer to 1.0 again :) Go to http://GeoKone.NET and get creative!

Notes from the path of creating a 3D geometry engine

Hello, Sakari here, aka inDigiNeous. For the past 2 years I have been building my own 3D engine, from the ground up, using C++11 and modern OpenGL.

In this post I am going through the motivation to build my own 3D engine, technical details about the process and what is driving me to do this work. Work that is ultimately leading to the development of next version of GeoKone (“GeoKone 3D”) and later also to

The desire to see how things work

First some background on why I decided to create my own 3D engine, how I got here and why I ultimately didn’t just use a ready made solution like Unity or Unreal Engine, or any of the other more lightweight engines out there.

My personal goal has always been to understand things deeply, and to see behind things, how they operate on their core levels. I get satisfaction from understanding things thoroughly. I like to take apart stuff, build, re-build and see how the pieces fit together in different ways. This is where I get my kicks from.

To understand, to learn, to see what makes things tick.

My graphics background

When I started developing http://GeoKone.NET, I had some experience in programming graphics, but nothing on a really deep level. I first learned graphics programming back in the 90s in the MS-DOS days, doing some simple Turbo Pascal, assembler and C -based demo effects, but I never released anything or never did anything really cool.

I tinkered during the years with 2D -graphics programming, mostly on the Javascript side of things, so I had some experience with that. But nothing on a really deep level.

During the development of GeoKone I noticed that  many of the visions I wanted to implement, I just couldn’t do with Javascript and the 2D canvas, because of performance reasons and just the limitations of the platform.

Back in 2011 when I started working on GeoKone, and during the couple of years following that, there was no viable option to do hardware graphics processing in the browser, WebGL wasn’t really a viable option, and in a way it still even isn’t, although it is gaining popularity, stability and support now, but it is still limited to new powerful machines to get smooth frame rates and nice support.

So I stuck with Javascript and 2D canvas programming for a while there, and it worked perfectly fine for what GeoKone is .. but I knew I needed more close-to-the-metal programming in order to get the visions out of my head that I wanted to see.

Enter Virtual Reality

In December 2013 when the Oculus Rift DK1 became available to purchase for any developer, I could hear my intuition proclaiming loudly “Order!” “Do it!”.

I still remembered in the early 2000s when my intuition told me, as a engineering student,  “purchase Apple stock” .. and I didn’t, so this time I decided to listen ;)

I ordered the first development kit, and the moment I first tested it, I knew that this is  the environment where Geokone 3D has to be made.

The Oculus Rift DK1 :: Hello Androids

Hello Androids :: Wearing the Oculus DK1

I  decided to dedicate my time then to start learning C++ and OpenGL more and to get something showing with the DK1.

I had already prototyped core parts of GeoKone with C++, Java and even Objective-C, just to test out what would fit best for the case, so I had some code already to work on, but not much.

Development of libgeokone, very early stages, C++ & OpenGL

Development of libgeokone, very early stages, C++ & OpenGL

Back then there was no integrated support in Unity or Unreal Engine like now, so the only way to see something in stereo 3D, was to implement  it using Oculus’s own C/C++ SDK.

Learning 3D basics

And I had no real experience in doing 3D programming, no understanding of how the math and the principles behind it worked. But I just decided, screw this, I’m gonna learn this while I go, and so I began.

Implementing and understanding basic 3D math and translations, projections and such took a while to understand, and matrix operations also still a bit difficult, but the more I program this stuff and really just teach it to myself, the more I start to see this geometry everywhere, how things are built, and understand the math and physics of space and light also while learning it, which is really interesting to notice.

Using a grid to verify 3D functionalities

Using a grid to verify 3D functionalities

Had one experience of walking outside after really grasping the 3D fundamentals and getting code working, I walked outside and could see their vector versions projected on top of the physical objects for a while there, like green matrixes of the physical objects, my mind mapping them out with the rules I just programmed for them. Woah! As Keanu Reeves would say.

Programming the Oculus Rift

It took me 4 months of work to get anything even showing properly with the DK1, mainly due to learning the basics of 3D programming, vectors, matrixes, projections, the whole third dimension and the complexity that comes with it. Luckily, for vector math I could use the great GLM library, which is really nice for working with OpenGL.

I had done simple 3D programming before this, but nothing that I could substantially understand, and this time I wanted to understand each thing I was doing, in order to really grasp what is going on here.

In these months of learning modern C++, OpenGL, GLSL, browsing the Oculus Forums to understand the SDK and just taking in all of this new information, I got to the state where I would get stereo rendering working properly finally, and man, it felt good at that point :)

One of the first stereo rendered scenes I did

One of the first stereo rendered scenes I did

Finally in beginning of May 2014 I had most of my geometry core from GeoKone ported to C++, with very simple GLSL shaders. This meant I could now draw recursive geometry in 3D space, with support for stereo rendering.

This would produce this kind of images:

Early stereo images

Early stereo images

One of the very first scenes for verifying stereo rendering I did

One of the very first scenes for verifying stereo rendering I did

Another stereo image

Another stereo image

Developing the first Demo

I also got the DK1 rendering properly, so I now had this kind of images produced by my program, animated in 60 fps, zooming through the geometry:

Geokone geometry engine rendered in stereo with C++ & OpenGL

Geokone geometry engine rendered in stereo with C++ & OpenGL

I continued from there to develop this demo, tested it with different music, and finally added music from my good friend Miika Kuisma. This lead to the development of the first demo of Geometrify, which we demoed together with Tommi Ullgren, Samuel Aarnio and many others helping us, ultimately us showcasing this potential of sacred geometry in VR at over 20 events and offering probably over a 1000 people their first VR experience ..

But that is a story for another blog post :)

From demo to engine

The first demo I did was just only a technical demo, made in a way that really didn’t support building flexible software around it, so I had to spend a lot of time figuring out how to get a proper framework of C++11 & OpenGL, built in a way that allowed configuration of a 3D world designed to render recursive geometry in a 3D space.

C++11 and OpenGL was chosen in order to support cross platform from the get go. No other language really offers bindings to all the libraries on all major three platforms, Mac Os X, Windows & Linux, and also mobile devices, and with the rock solid performance that this kind of experience would require to be really solid and feel smooth as silk.

Modern C++ practices

Modern C++ practices

I spent lot of time in just learning OpenGL and C++11 best practices. C++11 is a very nice language, but to understand how to use it, you have to wade through maybe 15-20 years of legacy practices in order to find how things are done currently, and how to apply modern techniques.

Implementing beautiful line rendering

One of the key aspects of rendering recursive geometry, is how to get beautiful lines rendered. Turns out this is not as simple as just using a ready made library, as there really doesn’t exist such a thing.

I waded through different methods, read through many papers and found out people have implemented something already, like the VASE -renderer. Ultimately I decided to implement the line rendering method researched and implemented by Nicolas P. Rougier with python, described in his paper here:

Getting this to work I now had lines like this renderer in OpenGL:

Antialiased Polygon Lines

First version of the antialiased polygon lines I implenented

Showing how these lines are tesselated from triangles

Showing how these lines are tesselated from triangles

More recent example of the linerendering

A More recent example of the line rendering method.

Need for a scripting language

One of the really annoying things about C++ is the need to compile the source code all the time even if you just change one number. Trying to implement program logic with this limitation was getting really on my nerves, as usually it took at least 2 – 3 seconds to compile the classes I was working on, and when doing this hundreds of times really takes a toll in the iteration times.

I reached the same conclusion that many others before me have done, and saw that I need to add scripting language support for my engine to really get anywhere in a reasonable time and not loose my mind while doing it.

I prototyped different approaches, first considering using QT5 with it’s built in Google V8 javascript engine, but came to the conclusion that I don’t need such a beast of software just do add scripting.

I also looked at several other scripting options, but really the only other one that can be taken seriously is Lua, so I bit the bullet, learned yet another new language and bound my C++ engine to the Lua -side with the assistance of the great lua-intf interface.

Controlling scenes with Lua

Controlling scenes with Lua

To be able to write programs that have the iteration speed of javascript, combined with the raw power of C++11 and Modern OpenGL, felt super good. Unlimited power!! ;)

Base work almost done

So finally I’ve reached a state of development in my engine, now named PSITriangle Engine™, where I can run program logic in scripts in Lua, and keep the parts requiring performance on the C++ side.

It’s been a long way to this state, to implement a very specific use-case 3D Geometry Engine, using modern C++11 and modern OpenGL + GLSL techniques, all the while learning how to do this while developing the actual engine.

The feeling of getting here, controlling all the pixels on the screen, using the power of math and geometry, and skills I had accumulated over the years to produce this virtual space, felt like pure creation coming into life.

I’m glad I didn’t know how much work implementing a 3D engine properly is, because I might have not chosen that path if I had known :D

Finally  I can just quickly script and prototype ideas quickly. This brings development speeds up significantly and helps test and development massively easier from now.

From now on my plan is to finish this base of the engine and actually start implementing the program logic for what is going to become “GeoKone 3D” as the project name for now! :)