Les graphiques 3D sont programmés avec WebGL (version de OpenGL ES 2.0 pour javascript). Ils nécessitent donc une navigateur implémentant WebGL (Firefox, Chrome, Opera). La carte graphique (ou le contrôleur graphique) doit prendre en charge OpenGL 4.0.
Un canvas pour WebGL s'ouvre avec la fonction fig3d.
Le canvas apparaît après la boîte de saisie, et après d'éventuelles sorties textuelles. Plusieurs canvas peuvent être créés dans le même bloc de calcul; ils apparaissent alors l'un au dessus de l'autre.
Les instructions graphiques qui sont exécutés après l'appel de fig3d agissent sur le canvas qui vient d'être créé.
Un style graphique est défini dans un objet style, dont les propriétés sont :
La scène à représenter est délimitée par un cadre (parallélépipède). Le cadre est défini avec la fonction plotframe3d :
Les objets graphiques sont ajoutés à la scène par la fonction add3d. La boucle de rendu de la scène est lancée par la fonction render3d. Voici un exemple d'une scène comportant une sphère et un rectangle :
La rotation de la scène est obtenue avec la souris. La vue peut être agrandie (zoom avant) en cliquant à gauche sur la souris tout en maintenant la touche shift enfoncée. De même, la touche ctrl permet d'effectuer un zoom arrière.
En faisant tourner la scène, on remarque que la direction d'éclairage est fixe par rapport à l'observateur. Par défaut, la lumière provient de l'observateur, ce qui correspond à la direction d'éclairage [0,0,1]. Pour changer la direction et l'intensité de l'éclairage, on utilise la fonction lighting comme dans l'exemple ci-dessous :
La propriété intensity permet d'ajuster la proportion de lumière issue de la source par rapport à la lumière ambiante. Si l'intensité vaut 1, il n'y a pas de lumière ambiante (les faces non éclairées son noires). Si l'intensité vaut 0, toute la lumière est ambiante.
Chaque objet possède une matrice de transformation affine, égale à l'identité par défaut. En agissant sur cette matrice, on peut déplacer ou faire tourner l'objet. L'exemple suivant montre une translation et une rotation appliquées à un rectangle :