- 0.3.5
- 0.23
- 0.24
- 0.32
- 3D
- 3D print
- 3D printing
- 033
- ambient occlusion
- Anderson
- animate
- animated
- animation
- announcement
- apt-get
- ARM
- binary
- blender
- blender cycles
- blog
- blur
- calculators
- Cartesian
- co-ordinates
- Coding
- comments
- comparison
- contribute
- contributors
- cosine
- curvature
- curve
- Curves
- cylindrical
- Dandelion
- deb
- Debian
- demo
- depth
- description
- Development
- deviantart
- download
- downtime
- Enzyme
- failure
- focus
- framebuffer
- Frenet Frame
- freshmeat
- function
- functions
- Functy
- gnome
- gnomefiles
- Goldman
- graphics
- GTK+2
- hot picks
- HTML5
- image
- impicit representation
- implicit curve
- install
- island
- jewellery
- jewelry
- knot
- landscape
- Launchpad
- lava lamp
- library
- link
- linux
- linux format
- linuxlinks
- lissajous
- literuture
- lxf
- magazine
- management
- maths
- MIT licence
- Model
- negative
- network
- network visualisation
- O3D
- object oriented
- OpenGL
- open source
- openvdb
- outage
- packaging
- paper
- parallelisation
- parametric
- parametric curve
- parametric curvec
- parametric surface
- ppa
- publication
- Raspberry Pi
- Release
- Render
- rendering
- repository
- research
- resolution independent
- review
- rings
- rpm
- scenary
- Screenshot
- Screenshots
- Sederberg
- Shader
- shaders
- shades
- shadows
- Shapeways
- sine
- slice
- slicing
- softpedia
- software
- source
- sourceforge
- spam
- sphere
- spherical
- string
- subtraction
- surface
- svn
- svx
- Symbolic
- Tony Ralano
- torsion
- Trac
- tubes
- tuxradar
- ubuntu
- update
- user interface
- version 0.1
- version 0.2
- version 0.21
- version 0.22
- vertex shader
- Video
- visualisation
- visualization
- volume
- voxel
- voxels
- Web
- website
- windows

# Posts tagged with 'functions'

## The importance of great literature

I’ve recently been working on the question of whether mathematical surfaces can be rendered entirely using Shaders in a resolution-independent way, by avoiding the need to simplify the curve using triangles first. As part of the research in to this I found myself reading Sederberg, Anderson and Goldman’s 1984 paper “Implicit Representation of Parametric Curves and Surfaces” (available from ScienceDirect). Although not a new paper by computing standards, it’s definitely one of the best papers I’ve read in a long time, and goes to show that previous work is important not just from a legacy perspective.

It’s not just the contemporary relevance of the paper that demonstrates this point, but also its content. As the authors explain at the end of the paper, they present “two important examples of problems deemed unsolvable in the CAD literature, which are, in fact, solvable using century-old theorems.”

I’m not sure why I’ve been quite so surprised by this; I’m sure most people will consider this obvious. I should also add that Sederberg is very well cited in the rasterisation literature. However, it’s nice to come across such a clear example of less recent research that remains essential (and enjoyable) reading today.

I recommend the paper if you’ve not already read it. It’s very well written and contains some fascinating but clearly explained work.

## 3D printed Functy rings

A parcel arrived from Shapeways recently containing some of the 3D printed ring prototypes I generated using Functy. The models were exported directly from Functy and converted into STY format before being directly uploaded to Shapeways for printing. All based on sine/cosine curves, there’s a flat version, a slightly bulging version and an irregular version. Since Shapeways did such a brilliant job printing the prototypes, the next step is to get them to print them in silver. Click on the links if you fancy having your own printed!

The Functy function files for all of these rings are up in the repository and will be included as example files in the next full release.

## The negatives of negatives

Many many moons ago, when I was still at school, one of the things that bugged me was the +/- button on my calculator. It just seemed redundant given that there was already a - button. Clearly I needed to get out more, but I digress. It wasn’t until I properly learned about groups, unary and binary operations, inverses and the like that the distinction became clearer, although the extra button still seemed unnecessary.

So, it’s a little ironic that I’ve spent this afternoon adding an extra ‘negative’ unary operation into the Symbolic library, even though there’s already a binary ’subtraction’ operator in there already. I bet I grow to regret this as things get more complicated, but it makes things easier for now.

The main benefit of this change is that previously when you wanted to use a negative number or expression you’d have to write something like “0-5″ or “0-cos(*x*)”. Now you just need to do “-5″ or “-cos(*x*)”. Much more civil. I did think about adding in the zero implicitly, so that “-*a*” got silently converted internally to “0-*a*“, but this just seemed ugly and was going to make things complex when it was converted back into a text string.

So, the good news is that now functions with negatives that look like they ought to work, but would previously have resulted in a confusing empty function, now actually work as they should. Hooray for unary negation!

## New functions

I’ve just added a bundle of new functions to the Symbolic library. These include exp, tan (which needed why weren’t they there already?!), the inverse and hyperbolic trigonometric functions, along with cosec, sec and cot.

The nice thing is that these will automatically get added in to Functy on the next build. Having used the existing functions a fair bit it’s good to have something new to play around with. I’ll try to post some screenshots of my efforts soon.

The updates aren’t in any of the releases yet, so if you want them you’ll need to check out the source from svn.