cubing.js icon indicating copy to clipboard operation
cubing.js copied to clipboard

Java Applet Replacement

Open lgarron opened this issue 14 years ago • 4 comments

Implement a decent set of parameters that make it posible and worthwhile to switch out AnimCube and Randelshofer's appplets for three.js on cube pages. Ideally, this should be able to handle tons of twisties on a page (achievable by flattening the twisties per cubing/twisty.js#12 while not active).

  • [ ] AnimCube
  • [ ] Randelshofer
  • [ ] VisualCube
    • Not a Java applet, but has URL-based configuration

lgarron avatar Oct 11 '11 08:10 lgarron

Sounds cool. I don't think you should have to

How much do you actually gain by flattening the twisites? If nothing is being done to the twisty, I imagine no additional cpu will be used. I suppose we'd save in terms of memory usage. How much space does an instance of a twisty actually take up?

Here's the memory usage for N 3x3 cubes according to chrome (in kilobytes).

1 25,800 2 26,900 3 27,140 4 32,284 5 32,472 6 36,036 7 36,268 8 36,740 9 37,616 10 37,784 11 38,000 12 38,200

I have a bunch of tabs open, and my browser has been running for a while. This is by no means a proper study. I can't explain the 4 megabyte jump going from 5 to 6 cubes. Maybe chrome allocates large chunks of memory at a time? That doesn't explain the 200kb increases though... Either way, it doesn't look like a twisty instance is really all that much memory. Flatenning might not make any sort of a noticeable difference until you get up to 1000s of cubes on a page.

jfly avatar Oct 25 '11 13:10 jfly

Good point. We should keep an eye on memory, though, and any related symptoms.

lgarron avatar Oct 25 '11 13:10 lgarron

Aye aye. I definitely had one issue where something I thought was getting deleted wasn't. I don't know anything about checking for memory leaks in javascript, but if there's some way of doing that, we probably should.

jfly avatar Oct 25 '11 14:10 jfly

I did a prototype of this for AnimCube at: https://experiments.cubing.net/cubing.js/applet-wrappers/AnimCube/

It's actually quite usable!

lgarron avatar Jul 04 '21 04:07 lgarron