Some good news, gears.ml now runs in the same speed division as gears.c. Hardware acceleration works well and this even when I compile to byte code. Although to see the output done in the window I have to move the window once, this forces a redisplay I guess. The mistake done on my part was that I missed that the Togl.timer_func ~ms:20 ~cb:(fun () -> view#idle); function was set to 20 ms, so of course it did not get higher frame rates than 50 fps. I changed it to 5 ms and used a big window (about 800 * 600) and it performed similarly to the gears c version. Needless to say I am quite impressed with this. Now there is only one problem left, when I compile gears.ml to native then it takes a long time (maybe some minutes) with almost all processor time used and when I run the resulting executable the machine freezes. Do you get similar problems with gears.ml when compiling to native? This is not so serious for me at the moment since the byte code compilation works alright for my intentions. Best Regards Peter Rönnquist