spatial3d {AIG}R Documentation

Spatial 3D Reasoning Item


This function generates a 3 dimensional display figure. It acts as a wrap because the creation of the figure is done using functions from the rgl package.


spatial3d(seed = 1, angle = pi/1.3, x = 0.3, y = 3, z = 0.8,
  cubes = 8, axis = TRUE, filled = "yes")



To generate the same set of item(s) on the local computer.

angle, x, y, z

See details


The number of connected cubes to generate.


Showing the axis is helpful when first testing the function.


yes, no, random will determine the colour of the cubes.


For 3D figures, some of the cubes may be hidden in sight when automatically generated. Hence, one would need to rotate the display figure several times to ensure that none of the cubes are hidden. To ensure that the same image is generated again, please provide a seed value. You will need to use the rgl post script function to save the figure. Currently, the function returns the a list object that is used to generate the display figure. The figure matrix in the list object can be used for the spatial3d_mirror to generate a mirror image of the display figure.

The arguments angle, x, y, z represents the rotation of angle radians based on the x, y and z axis. This is a wrapper to the rotationMatrix function from the rgl package. Changing the values in the arguments angle, x, y, z coordinates allows one to programmatically change angles to study potential cognitive operators at work.

You can also rotate the figure interactively by clicking on the figure and moving it in different direction.



Return the matrix that generates the display figure.


Return the cordinates of x,y,z,w


Aiden Loe and Francis Smart


Bejar, I. I. (1990). A generative analysis of a three-dimensional spatial task. Applied Psychological Measurement, 14(3), 237-245.

See Also

lisy, arith, spatial2d, spatial3d_mirror


item <- spatial3d(seed=4, angle=pi/1.3, x=0.3,y=4,z=0.8,cubes=8,axis = TRUE)

# To save the figure (not run)
# library(rgl)
# item <- spatial3d(seed=4, angle=pi/1.3, x=0.3,y=4,z=0.8,cubes=8,axis = TRUE)

# save in pdf
# wd<- '~/desktop'
# item <- 1

# save <- paste0(wd,"/display3d_",item,".pdf")
# rgl.postscript(save,"pdf")

# save in png
# rgl.snapshot(filename="image3D.png",fmt="png")

[Package AIG version 0.1.9 Index]