Skip to content


Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


What asxp does

It runs under Linux (Ubuntu 16.04 LTS on my machine) and generates perspective views of algebraic surfaces via raycasting:

You define a certain polynomial f(x, y, z, a, b) in the variables x, y, z and parameters a and b in the configuration file of asxp.

Then you can go into a visualizing window for the surface, where the position of the mouse determines the parameters a and b as a0 and b0 and the surface plotted is the (two dimensional projection of the) zero-set

f(x, y, z, a0, b0) = 0

in 3d-space with coordinates x, y, z.

In total it does

  • create living views of an algebraic surface under parameter change,
  • produce Floyd-Steinberg dithered grayscale images of surfaces,
  • create images which are cross hatched along the principal directions of curvature,
  • display silhouette images,
  • triangularize surfaces, smoothen and reduce the triangularization,
  • produce STL models ready for 3D printing (with the help of an auxiliary program, renderstl).

Look at the video

The current version runs with CUDA support and uses the parallel processing power of the graphic card:

asxp demo video

A drawing

This drawing is done with principal curvature crossfield hatch: cross hatch

Building asxp


At the moment I give only a sketchy explanation for experts who know how to extract the necessary dependency informations from the makefiles and can change the makefiles accordingly. If you need more detailed information how to build asxp please write me an e-mail.


Generally asxp depends on Qt, boost, CGAL, GNU GTS, CUDA.

Look at libs.txt for a way to find the necessary dependencies of asxp on an Ubuntu system with apt-file.


Suppose you want to build asxp in your directory software anywhere in your filesystem.

cd software
git clone
cd asxp_npr2

Modify paths and variable values in and in cuda/Makefile if necessary.

cd cuda
cd ..

At the moment, the cuda library cuda/lib/libasxp.a must always be built separately.


Jürgen Böhm - see


No releases published


No packages published