// Options for the collection input. An array of objects containing fields
// name, info, and size, respectively the title of the collection, an array of paintings
// and the size of the labirynth (either a an integer or an array of integers.)
//
//
// Ratio of the labyrinth walls to be torn down
// 0 means perfect labyrinth and 1 means a rectangular room with no walls
//
//
// Thickness of the walls w.r.t. cell.
// 1 means walls as thick as cells. 0 means paper-thin walls (not recommended)
//
//
// Camera angle in degrees.
// Useful values range from roughly 60 to 140.
// Small angles mean less distortion, but, since the viewer stays at the center of
// cells, paintings will appear larger. Bigger values result in bigger distortions, but paintings can be put
// closer together and still appear small. Use paintingSizeRatio to control overall painting size.
//
//
// Painting size with respect to each wall cell.
// Values closer to 1 make paintings bigger.
//
//
// Background color of navigation buttons
//
//
// Color of arrows in navigation buttons
//
//
// Ratio between button size and width
//
//
// Ratio between width of button and size of the arrow
//
//
// These configure the button icons used in the interface
//
width=window.defWidth||window.innerWidth*0.986
//
// Height of the canvas. By default set to 9/16 of the width (wide-screen aspect ratio)
//
//
// If true, removes the blocks that make the ceiling
//
//f = fullscreen(mainFrame, {center: true})
// showLabyrinth(labyrinth)
mutableimgStat=({success:0,fail:0})
THREE=require('three@0.119.1')
import{textGeometry}from'@esperanc/3d-fonts'
import{fullscreen}from"@fil/fullscreen"
Purpose-built for displays of data
Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.