NURBS
From Bennet
There is a severe lack of NURBS tools in the free software domain. To better help developers implement a good NURBS library, this page will serve as a link page to the various free implementations available.
Contents |
[edit] Terminology
Effort to create consistent terminology that agrees with mathematics
Attach - Select two splines and attach. The two splines are now one spline object, consisting of two segments. If the spline ends are not touching, this modifier should not work. This modifier should not reshape the original splines.
Detach - Select one EP and detach. The spline will be broken into two segments, but still is one spline object.
Connect - Select a group, a, of EPs'. Then select a point, b. This modifier will create a new spline between all the points in group, a to the point, b. The points in group a should not share the same space as the point, b.
Cut - Create two separate splines that overlap each other and cut. When the two splines intersect, they will be divided apart at the location.
Trim
Gordon - Construct a surface interpolating the given curves
Project
Union
Substract
Difference
Intersect
Sculpt
Revolve
Loft - Surface created between two or more curves.
Knot Insert - Inserting a knot into a curve adds another Curve Point (CP). Place another CP anywhere on the curve. Now the curve has a few extra CPs. Add/subtract knots to the curve while still keeping the relative shape. Change the Number of Spans
Interrogate
Rebuild - This is a simplify function. It will remove edit points that are not needed to represent the shape of the spline.
T-Junction
Extrude
Planar?
Revert - Reverse the direction of the curve
Bevel
Offset
Birail 2 and 3+
Fillet - Select two adjoining curves (the edges are touching but not connected), adjust radius and fillet. This will create an unattached curve that fillets the corner nicely.
Cap - Create surface from a closed curve
Boundary - Surface from 4 touching curves?
Arc - Two and three point circular arc
Snap - Grid, Spline, Point, View Planes, Mid Point
CV Spline Tool - Uses Control Vertices to create the curve. Four CVs equals one curve. Create tool for creating quick flowing organic curves.
EP Spline Tool - Uses Edit Points to create the curve. Two EPs equals one curve but if you keep clicking with this tool in use, the curve will change according the distance between EPs.
Pencil Spline Tool - Draw a free hand spline with this tool
[edit] Libraries
Existing NURBS libraries:
libnurbs INACTIVE C
jgeom INACTIVE JAVA
libnurbana INACTIVE
CGAL ACTIVE
[edit] Applications
Applications supporting rudimentary NURBS support:
Blender ACTIVE
Varkon ACTIVE
Dragon INACTIVE
Fluxus ACTIVE
BRL-CAD ACTIVE
Nurbana INACTIVE
Ayam VERY ACTIVE NURBS development
Innovation3d INACTIVE
K-3D VERY ACTIVE NURBS development
Wildcat CAD INACTIVE
QCad UNSURE - Free version of this software has rudimentary NURBS in R2
[edit] Developers
Developers with NURBS experience:
Martin Schuersh, mschuerch@datacomm.ch, Hacking on libnurbs
Alejandro Frangi, alex@isi.uu.nl, Contributed closed curves and closed surface support in libnurbs.
Philippe Lavoie, philosophil@users.sourceforge.net, Maintainer of libnurbs
David Forsey Developer of Dragon. Cannot find his email
Samuel Gerber, suppechasper@dev.java.net, jgeom Developer; Not planning any NURBS development in the near future (20061215)
Emmanuel Stone, email?, Made a NURBS library called libnurbana from Nurbana and made Blender use it.
Justin Shumaker, email?, Developer of Nurbana.
Randolf Schultz, rschultz@informatik.uni-rostock.de, Developer of Ayam
Stephen Swaney, sswaney@swbell.net, Added NURBS curves iterators to Blender
Jon Anderson, janders@users.sourceforge.net, Developer of Innovation3d
Fernando Serboncini, fserb@fserb.com.br, Looking to create a NURBS surface module in Blender
Francesco Tamagni, email?, Looking to implement a clean NURBS interface in Blender
[edit] Tutorial
A NURBS Summary Markus Altmann
NURBS Curves: A Guide for the Uninitiated Philip J. Schneider, pjs@apple.com
[edit] Letter
We need to draft a letter to send to these developers and ask them about their plans for NURBS development.
We may also try to raise a fund to hire a developer.
We should maybe make a special page for free software NURBS development.
If a developer is not interested in developing, maybe he can join the mailinglist and help other developers.
It would also be nice if the maintainers of the different inactive NURBS libraries and applications could link to the NURBS page.
Dear Sir There is currently very primitive support for NURBS in the free software world. You have previously worked on implementing NURBS. Do you have any further plans to work on free NURBS libraries or applications?. Thank you for your time.

