vegandevs / vegan3d

Dynamic and static 3D plotting for vegan
19 stars 4 forks source link

The future is uncertain #7

Open jarioksa opened 3 years ago

jarioksa commented 3 years ago

Brian Ripley wrote on St Lucia's Day Dec 13, 2020:

The future of OpenGL is uncertain (except on macOS, where it has no future). So it seems reasonable to require rgl only when essential to the package. These packages have it in Depends/Imports but seem not to actually call it in their checks (established using a fake install). It is possible that the sole purpose of the package might be to do interactive visualizations which are not checked, but that seems not to be the case here. We noticed calls to rgl functions in \dontrun{}, but they would better be conditioned by if(interactive()) (see 'Writing R Extensions').

Please move rgl to Suggests and use conditionally (see §1.1.3.1 of Writing R Extensions') at the next package update.

The sole purpose of vegan3d is to do interactive visualizations, and these functions were moved from vegan to a separate package just because we were aware of the fragility of rgl applications.

We should change \dontrun{} to if (interactive()), but there is no urgent reason to do so or release a new package. If rgl vanishes, vegan3d will also sink, and no cosmetic change in dependences or checking switches will help.

In addition to rgl functions, there are also a couple of static mock-3D plotting functions depending on scatterplot3d (ordiplot3d, orditree3d, scores.ordiplot3d). These were transferred from vegan together with rgl functions because the state of scatterplot3d was not quite satisfactory. However, scatterplot3d is now OK also for vegan purposes, and we may consider moving these functions back to vegan if vegan3d dies.

dmurdoch commented 1 year ago

Reports of the death of OpenGL were premature. In any case, if it ever goes away, it is not hard to get rgl to use WebGL instead, which seems quite well supported in browsers.