diff --git a/benchmarks/boolean/nurbs.lua b/benchmarks/boolean/nurbs.lua
new file mode 100644
index 0000000000000000000000000000000000000000..ef04763fd83531362571827a8dcf70a03a53b1f6
--- /dev/null
+++ b/benchmarks/boolean/nurbs.lua
@@ -0,0 +1,30 @@
+g = GModel();
+
+v1 = g:addVertex(0,0,0,.1); 
+v2 = g:addVertex(1,-.2,0,.1); 
+
+v3 = g:addVertex(1,0,0,.1); 
+v4 = g:addVertex(1,1,0,.1); 
+v5 = g:addVertex(2,1,0,.1); 
+v6 = g:addVertex(2.5,-.05,0,.1); 
+v7 = g:addVertex(1.5,-1,0,.1); 
+
+g:addLine(v1,v3);
+g:addLine(v3,v4);
+g:addLine(v4,v5);
+g:addLine(v5,v6);
+g:addLine(v6,v7);
+g:addLine(v7,v2);
+
+--g:addNURBS (v1,v2, {{0.1,0.1,0},{0.2,0.1,0},{0.3,0.2,0},{0.4,0.6,0},{0.9,0.8,0}},
+--	   {0,0,0,0,0.25,0.5,0.75,1,1,1,1},{1,1,1,1,1,1,1},{4,1,1,1,1,1,4}); 
+
+g:addBezier (v1,v2, {{v3:x(),v3:y(),0},{v4:x(),v4:y(),0},{v5:x(),v5:y(),0},{v6:x(),v6:y(),0},{v7:x(),v7:y(),0}}); 
+g:addNURBS (v1,v2, {{v3:x(),v3:y(),0},{v4:x(),v4:y(),0},{v5:x(),v5:y(),0},{v6:x(),v6:y(),0},{v7:x(),v7:y(),0}},	   
+	   {0,0.25,0.5,0.75,1},{1,1,1,1,1,1,1},{4,1,1,1,4}); 							   
+g:addNURBS (v1,v2, {{v3:x(),v3:y(),0},{v4:x(),v4:y(),0},{v5:x(),v5:y(),0},{v6:x(),v6:y(),0},{v7:x(),v7:y(),0}},	   
+	   {0,0.5,1},{1,1,1,1,1,1,1},{4,3,4}); 							   
+
+g:addNURBS (v1,v2, {{v3:x(),v3:y(),0},{v4:x(),v4:y(),0},{v5:x(),v5:y(),0},{v6:x(),v6:y(),0},{v7:x(),v7:y(),0}},	   
+	   {0,1/3.,2./3.,1},{1,1,1,1,1,1,1},{5,1,1,5}); 							   
+