Skip to content

Upgrade to new Cytoscape.js; make wheel sensitivity configurable? #471

Description

@fedarko

The newest Cytoscape.js version as of writing is v3.34.1 (released earlier today), which includes cytoscape/cytoscape.js#3491 :)

However, on my system (and this is a big disclaimer for this issue: on my system, which is like an > 8 year old laptop) I feel that the "corrected" zoom speed as of cytoscape/cytoscape.js#3336 (even after the GCD fix) is too slow, particularly on large graphs. Zooming in on large graphs on my laptop feels sluggish.

I did some testing with the august1 test graph (~28k nodes and ~22k edges). Drawing all of the graph legit feels more responsive when using the older Cytoscape.js version, without cytoscape/cytoscape.js#3336 and the later fixes. It feels noticeably snappier when using the jerkier scrolling.


Some ideas I had for why this might be the case (again, all with the caveat that this is specific to my system):

  • Maybe increasing wheel sensitivity for the new Cytoscape.js version to match the old "jerkiness" would help?

  • The 3336 fix clamps the first few inputs. Is that related? Maybe each input is just slower on a big graph, so the effect of clamping is more pronounced?

  • Maybe slower scrolling means more time spent on the initially-zoomed-out view of the graph, and since that means there is more stuff visible then that means performance is worse?


I verified that increasing the wheel sensitivity up to a really high value of 10 made the UX with the big all-of-aug1 graph (and the new Cytoscape.js version) much nicer -- felt comparable to the old Cytoscape.js version.

So, that all being said... as the Cytoscape.js docs repeatedly say, it is not a good idea to set the wheel sensitivity for everyone based on just one system. If the current wheel sensitivity stuff feels good for most users, then setting it to 10 just to make my life nicer will make everybody else go flying.

We could make the wheel sensitivity configurable, but I don't like that because this should really be done on a system-by-system level, not a every-time-you-run-mgsc-you-change-the-same-option level.


So! I think, for at least the immediate moment (when we are in a hurry to finally get this paper out ...), sticking with the old version of Cytoscape.js makes sense. But eventually it would be best to upgrade to a newer version, and figure out a way to balance things. I am very curious to see how the aug1-all graph "feels" on a normal system (e.g. a macbook or something). I think that will influence how this should go.

(One option we could do is set the wheel sensitivity based on how big the currently-drawn region of the graph is, which would be fun. But I again I am wary of breaking things for everyone, which is what will happen if this is not tested thoroughly enough.)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    assemblersMaintaining compatibility with certain assemblers / pipelines, showing unique information, etcexternalBugs / issues with other libraries/dependenciesperformancequestiontesting

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions