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.NET :: Pushing The Boundaries, continuing development with OpenGL

GeoKone - Pushing The Boundaries

GeoKone - Pushing The Boundaries

GeoKone can do pretty cool stuff already, as you can see, the formation was completely rendered (text added in PS) in GeoKone, live at
http://GeoKone.NET
. It’s awfully slow at these recursion levels, but I hope that the upcoming OpenGL version will help in solving this performance issue.

You can see where this formation comes from by Pasting The Following Scene to 
http://GeoKone.NET
:

{"scene_name":"test","backgroundColor":-15461356,"viewportColor":-12503091,"canvasWidth":900,"canvasHeight":675,"configs":[{"numberOfChildLevels":0,"recursionDepth":1,"origoX":458,"origoY":517.5,"radius":-106,"childRadiusRatio":0.5399999999999996,"angleOffset":-575,"numPoints":181,"childNumPointsRatio":1,"childNumPointsFixed":0,"lineWeight":0.39999999999999936,"strokeRatio":1.618033988749895,"strokeMode":"round","lineColor":-1355008,"pointColor":0,"strokeColor":-256,"drawPoints":false,"fillPoints":true,"drawBase":false,"drawStroke":false,"pointRadius":3.955417527999327,"pointRadiusRatio":16.18033988749895},{"numberOfChildLevels":0,"recursionDepth":1,"origoX":562,"origoY":337.5,"radius":-106,"childRadiusRatio":0.5399999999999996,"angleOffset":-575,"numPoints":181,"childNumPointsRatio":1,"childNumPointsFixed":0,"lineWeight":0.39999999999999936,"strokeRatio":1.618033988749895,"strokeMode":0,"lineColor":-1335296,"pointColor":0,"strokeColor":-256,"drawPoints":false,"fillPoints":true,"drawBase":false,"drawStroke":false,"pointRadius":3.955417527999327,"pointRadiusRatio":16.18033988749895},{"numberOfChildLevels":0,"recursionDepth":1,"origoX":354,"origoY":337.5,"radius":-106,"childRadiusRatio":0.5399999999999996,"angleOffset":-575,"numPoints":181,"childNumPointsRatio":1,"childNumPointsFixed":0,"lineWeight":0.39999999999999936,"strokeRatio":1.618033988749895,"strokeMode":0,"lineColor":-7733013,"pointColor":0,"strokeColor":-256,"drawPoints":false,"fillPoints":true,"drawBase":false,"drawStroke":false,"pointRadius":3.955417527999327,"pointRadiusRatio":16.18033988749895},{"numberOfChildLevels":0,"recursionDepth":1,"origoX":458,"origoY":157.5,"radius":-106,"childRadiusRatio":0.5399999999999996,"angleOffset":-575,"numPoints":181,"childNumPointsRatio":1,"childNumPointsFixed":0,"lineWeight":0.39999999999999936,"strokeRatio":1.618033988749895,"strokeMode":0,"lineColor":-1376123,"pointColor":0,"strokeColor":-256,"drawPoints":false,"fillPoints":true,"drawBase":false,"drawStroke":false,"pointRadius":3.955417527999327,"pointRadiusRatio":16.18033988749895}]}

Just copy & paste this to the textbox displayed by GeoKone when Activating Menu OptionScene/Import Scene as text/JSON”.

Meanwhile, here are a couple of screenshots related to the openGL Version, I got one complete polyform already rendered almost properly with OpenGL, which is nice, seeing that I can now draw 30 FPS (easily) with complex scenes:

So, I hope next point release of GeoKone will already use WebGL for it’s rendering, enabling much better user experience. Until then, hope you enjoy using
http://GeoKone.NET
 :)

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 :)