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: https://OmniGeometry.com.

OmniGeometry_facebook_banner_fullHD.png

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: https://OmniGeometry.com 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.

My Mission :: Awakening to Sacred Geometry

Video

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 (http://vizor.io), 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: http://jcgt.org/published/0002/02/08/).

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 http://processing.org, 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: https://twitter.com/inDigiNeous, 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 www.luminaya.com

Remixing Geometry over a image from luminaya.com

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.

Changelog

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!

Creating software for Creators

Would you like to feel like a Creator ?

 

Feeling I want to Create with Geometrify Creator

Feeling I want to Create with Geometrify Creator

This picture (by http://sacredvisions.co.uk) pretty well sums up the feeling of the software that I want to build. It will be called Geometrify Creator, and to over simplify things I’m going to describe it as Geokone 2.0 + 3D for now.

 
Native speed OpenGL, VR support, Intuitive Touch/Motion Interface.
Designed to be so easy to use that a child can understand and feel the fun, and learn geometry and math in practice while doing it, supported with visual cues and realtime feedback of what is happening on every action.
 

No luck with funding

For the past year, we have been building this vision and demoing our concept / tech demo for the Oculus Rift DK1 at various events ranging from biohacking events in Finland, psychedelic gatherings at Ozora Hungary and consciousness hacking meetups in Silicon Valley, USA.

It’s been one big adventure and lesson in just letting go and flowing with whatever comes, and dedicating myself for the cause of building something that will blow peoples minds.

This has been proven with the DK1 -demo already, but what has been difficult has been the realization that I cannot build this vision alone, and we don’t have the resources to hire another fulltime programmer to help.

Making it happen

I’ve been fortunate enough to be on this path for 3 years already, first building GeoKone.NET into a more finalized state and now focusing on bringing a VR -supported version of new version of this vision into reality.

Too bad dedication is not enough, and I am now running out of money. How to continue working on this and figuring out a place to get income or funding is now really pushing me. I really wish a person would come that could give us 30,000 euros right now so we could continue working on this, but if this doesn’t manifest into reality, I really have to start thinking about getting a day job again.

Planning right now just to release everything we have done with Geometrify, like the Oculus Rift DK1 -demo we have now demoed at least to 1000 people already, and also our unfinished DK2 -demo which we never got ready.

Technical Challenges

It turns out building a custom 3D engine from scratch is pretty freaking difficult! Especially being the only one programming it.

I have a strong reasoning to build our own tech, because we have such a specialized case of generating geometry on the fly, and I see many use cases for such an engine. My vision spans 10 years, not just one application in one place.

Everything has been designed in such a way that this geometry engine, called PsiTriangle Engine for now, can be added to many different projects where recursive, interactive, living GeoKone.NET style recursive natural geometry is needed.


Also, I really want to understand everything about the process and not just use some ready made engine. This means a steep learning curve, but on the long run I will win through sheer perseverance and deep understanding what is happening on a hardware level of things.

Wanting to share the knowledge

I trule believe that Sacred Geometry represents the structure of the world we live in, and by understanding that structure, we can understand so much more of the world we live in.

This is my goal, to share this knowledge. I wish it was easier, but seems creating anything different than what people are used to doing, is met with great resistance on some subconscious level.

Its not safe, it’s not another Call Of Duty or another ‘match 3’ game, it’s something different. And seems many people are not ready for that. I hope to find those people who are ready for this.

Moving On

I have still held back in communicating this more honestly and directly, so now I feel is the time to really start just putting the vision out there and not care what some stuck up businessmen think about it.

With Geometrify we have tried too much to fit our vision into something existing, when I feel it is time to just be brave and communicate more from the heart what we want to create.

Anyway. I just wanted to shortly update what is going on right now and what I have been thinking. Will be updating more when I get more of what I want to down on paper.

Geokone Tutorial Video :: Creating Sacred Geometry Live

I did an quick’n’sleek tutorial video on how to create beautiful Geometry with  GeoKone.NET., check out the video here:

In this video I go through the basics, while creating art and explaining what I am doing.

Just watching somebody create geometry can also be quite relaxing, especially with great music by Miika Kuisma in this video.

More Rainbow GeoKone Generated Fractal Geometry Art

Image

Some recently discovered look from GeoKone.NET.
Fore more art, Check out my tumblr page at http://indigineous.tumblr.com/

export_4_stamped

8 loop, infinity, heart energy, torus

SomethingDifferentForAWhile_stamped

Vesica Pisces, Duality, Balance

export_5_stamped

Opening Up, DMT, Spiritual


export_6_stamped

Love, Purity, Bliss

export_3_stamped

Discovery, Construction

What do you think ?

Created utilizing the Rotate Hue animation option in GeoKone.NET.