rgl.postscript hang

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

rgl.postscript hang

J C Nash
I've found some other reports that resemble this, but none seem to have a clear
indication of the source of the hangup. This post raises a non-critical issue, but
it would be nice to understand the problem and possibly fix it, or else have an
error message generated. As Duncan has posted in one of the items, rgl.snapshot is
recommended, and it worked for me, but I originally wanted a pdf so tried rgl.postscript
before I saw his comment that the latter may give problems. Indeed, users may not
realize that the message in the documentation

   "This function is a wrapper for the GL2PS library by Christophe Geuzaine,
    and has the same limitations as that library: not all OpenGL features are
    supported, and some are only supported in some formats. See the reference for
    full details."

can imply a "hang" rather than a failure that leaves R (or RStudio) running. Or indeed
crashes them, which it may do in other systems. I used the Linux "kill" command after
using "ps ax" to find which processes were running R or RStudio.

The relevant previous posts are

https://stackoverflow.com/questions/23242846/exporting-rgl-snapshot-and-rgl-postscript-fails

https://support.rstudio.com/hc/en-us/community/posts/200669327-rgl-postscript-hangs

http://r.789695.n4.nabble.com/rgl-postscript-failure-when-saving-a-scene-td4177241.html

My code that hangs is as follows with the rgl.snapshot line commented and the rgl.postscript
one uncommented. The script displays an image box with the correct graph, and seems to output
a partial preamble to the eps file before hanging. This occurs in either R or RStudio.

Unless someone has a true solution, I suggest offline communications until we have an
understanding of the problem. I'm posting mainly to try to put a box around the issue to
help others avoid it.

Best,

JN

---------------
# candlestick function
# J C Nash 2011-2-3
cstick.f<-function(x,alpha=100){
  x<-as.vector(x)
  r2<-crossprod(x)
  f<-as.double(r2+alpha/r2)
  return(f)
}
x <- (-100:100)/5
y <- x
library(rgl)

z <- matrix(NA, length(x), length(y))
for (i in seq_along(x)) {
    for (j in seq_along(y)) {
        z[i,j] <- cstick.f(c(x[i],y[j]))
        if (is.infinite(z[i,j])) {z[i,j] <- 1000}
    }
}
persp3d(x, y, z, col='red')
par3d( windowRect=c( 0,0,500,500 ) )
# rgl.postscript("candlestick3d.eps","eps")
rgl.snapshot("candlestick3d.png","png")
rgl.pop()
----------------

System had following setup

 sessionInfo()
R version 3.5.2 (2018-12-20)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Linux Mint 19.1

Matrix products: default
BLAS: /usr/lib/x86_64-linux-gnu/openblas/libblas.so.3
LAPACK: /usr/lib/x86_64-linux-gnu/libopenblasp-r0.2.20.so

locale:
 [1] LC_CTYPE=en_CA.UTF-8       LC_NUMERIC=C               LC_TIME=en_CA.UTF-8        LC_COLLATE=en_CA.UTF-8
LC_MONETARY=en_CA.UTF-8
 [6] LC_MESSAGES=en_CA.UTF-8    LC_PAPER=en_CA.UTF-8       LC_NAME=C                  LC_ADDRESS=C
LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_CA.UTF-8 LC_IDENTIFICATION=C

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

other attached packages:
[1] rgl_0.99.16

loaded via a namespace (and not attached):
 [1] Rcpp_1.0.0              digest_0.6.18           later_0.8.0             mime_0.6                R6_2.4.0
     jsonlite_1.6
 [7] xtable_1.8-3            magrittr_1.5            evaluate_0.13           miniUI_0.1.1.1          promises_1.0.1
     rmarkdown_1.11
[13] webshot_0.5.1           tools_3.5.2             manipulateWidget_0.10.0 htmlwidgets_1.3         crosstalk_1.0.0
     shiny_1.2.0
[19] httpuv_1.4.5.1          xfun_0.5                yaml_2.2.0              compiler_3.5.2          htmltools_0.3.6
     knitr_1.21
>

I got the same behaviour on another machine running Linux Mint 18.3.

______________________________________________
[hidden email] mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Reply | Threaded
Open this post in threaded view
|

Re: rgl.postscript hang

Duncan Murdoch-2
I suspect it isn't actually hung, it is just very, very slow.  If I
change the line

x <- (-100:100)/5

to

x <- (-20:20)/5

then it works almost instantly.  At

x <- (-50:50)/5

it is slow (16 seconds); replacing the 50 with 60, 70 or 80 yields 29,
46, or 120 seconds respectively. So far I haven't been patient enough to
know what

x <- (-90:90)/5

would take.  This doesn't really make sense:  with

x <- (-n:n)/5

it will need to sort (2n + 1)^2 objects, but that should take something
proportional to n^2 log(n) time, and the time seems to be growing faster
than that.

Duncan Murdoch

On 10/03/2019 2:57 p.m., J C Nash wrote:

> I've found some other reports that resemble this, but none seem to have a clear
> indication of the source of the hangup. This post raises a non-critical issue, but
> it would be nice to understand the problem and possibly fix it, or else have an
> error message generated. As Duncan has posted in one of the items, rgl.snapshot is
> recommended, and it worked for me, but I originally wanted a pdf so tried rgl.postscript
> before I saw his comment that the latter may give problems. Indeed, users may not
> realize that the message in the documentation
>
>     "This function is a wrapper for the GL2PS library by Christophe Geuzaine,
>      and has the same limitations as that library: not all OpenGL features are
>      supported, and some are only supported in some formats. See the reference for
>      full details."
>
> can imply a "hang" rather than a failure that leaves R (or RStudio) running. Or indeed
> crashes them, which it may do in other systems. I used the Linux "kill" command after
> using "ps ax" to find which processes were running R or RStudio.
>
> The relevant previous posts are
>
> https://stackoverflow.com/questions/23242846/exporting-rgl-snapshot-and-rgl-postscript-fails
>
> https://support.rstudio.com/hc/en-us/community/posts/200669327-rgl-postscript-hangs
>
> http://r.789695.n4.nabble.com/rgl-postscript-failure-when-saving-a-scene-td4177241.html
>
> My code that hangs is as follows with the rgl.snapshot line commented and the rgl.postscript
> one uncommented. The script displays an image box with the correct graph, and seems to output
> a partial preamble to the eps file before hanging. This occurs in either R or RStudio.
>
> Unless someone has a true solution, I suggest offline communications until we have an
> understanding of the problem. I'm posting mainly to try to put a box around the issue to
> help others avoid it.
>
> Best,
>
> JN
>
> ---------------
> # candlestick function
> # J C Nash 2011-2-3
> cstick.f<-function(x,alpha=100){
>    x<-as.vector(x)
>    r2<-crossprod(x)
>    f<-as.double(r2+alpha/r2)
>    return(f)
> }
> x <- (-100:100)/5
> y <- x
> library(rgl)
>
> z <- matrix(NA, length(x), length(y))
> for (i in seq_along(x)) {
>      for (j in seq_along(y)) {
>          z[i,j] <- cstick.f(c(x[i],y[j]))
>          if (is.infinite(z[i,j])) {z[i,j] <- 1000}
>      }
> }
> persp3d(x, y, z, col='red')
> par3d( windowRect=c( 0,0,500,500 ) )
> # rgl.postscript("candlestick3d.eps","eps")
> rgl.snapshot("candlestick3d.png","png")
> rgl.pop()
> ----------------
>
> System had following setup
>
>   sessionInfo()
> R version 3.5.2 (2018-12-20)
> Platform: x86_64-pc-linux-gnu (64-bit)
> Running under: Linux Mint 19.1
>
> Matrix products: default
> BLAS: /usr/lib/x86_64-linux-gnu/openblas/libblas.so.3
> LAPACK: /usr/lib/x86_64-linux-gnu/libopenblasp-r0.2.20.so
>
> locale:
>   [1] LC_CTYPE=en_CA.UTF-8       LC_NUMERIC=C               LC_TIME=en_CA.UTF-8        LC_COLLATE=en_CA.UTF-8
> LC_MONETARY=en_CA.UTF-8
>   [6] LC_MESSAGES=en_CA.UTF-8    LC_PAPER=en_CA.UTF-8       LC_NAME=C                  LC_ADDRESS=C
> LC_TELEPHONE=C
> [11] LC_MEASUREMENT=en_CA.UTF-8 LC_IDENTIFICATION=C
>
> attached base packages:
> [1] stats     graphics  grDevices utils     datasets  methods   base
>
> other attached packages:
> [1] rgl_0.99.16
>
> loaded via a namespace (and not attached):
>   [1] Rcpp_1.0.0              digest_0.6.18           later_0.8.0             mime_0.6                R6_2.4.0
>       jsonlite_1.6
>   [7] xtable_1.8-3            magrittr_1.5            evaluate_0.13           miniUI_0.1.1.1          promises_1.0.1
>       rmarkdown_1.11
> [13] webshot_0.5.1           tools_3.5.2             manipulateWidget_0.10.0 htmlwidgets_1.3         crosstalk_1.0.0
>       shiny_1.2.0
> [19] httpuv_1.4.5.1          xfun_0.5                yaml_2.2.0              compiler_3.5.2          htmltools_0.3.6
>       knitr_1.21
>>
>
> I got the same behaviour on another machine running Linux Mint 18.3.
>
> ______________________________________________
> [hidden email] mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>

______________________________________________
[hidden email] mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.