data("hawaii", package = "marmap")
library(quadmesh)
r <- marmap::as.raster(hawaii)
qm <- quadmesh(r, z = r)

##qm$vb ## transpose vertices [(x, y, z, h), ] h = 1 (ignore, homogeneous coords)
##qm$ib ## transpose quad index [(c1, c2, c3, c4), ]

rgl::plot3d(t(qm$vb[1:3, ]), col = viridis::viridis(50)[scales::rescale(qm$vb[3, ], c(1, 50))])
rgl::rglwidget()
rgl::rgl.clear()
rgl::shade3d(qm, col = "grey")  ## let's not go into colours for rgl here ...
rgl::aspect3d(1, 1, 0.1)
rgl::rglwidget()
##  also explore 2D on a tiny piece
qm1 <- quadmesh(raster::crop(r, raster::extent(r, 1, 20, 1, 30)))
plot(t(qm1$vb[1:2, ]), type = "n")
polygon(t(qm1$vb[1:2, rbind(qm1$ib, qm1$ib[1, ], NA)]))