diff --git a/examples/dot_photo_sphere.scad b/examples/dot_photo_sphere.scad
index 0ed438fd..5066e8e7 100644
--- a/examples/dot_photo_sphere.scad
+++ b/examples/dot_photo_sphere.scad
@@ -1,5 +1,5 @@
 use <pixel/px_gray.scad>;
-use <experimental/ptf_sphere.scad>;
+use <ptf/ptf_sphere.scad>;
 
 photo_size = [100, 100];
 radius = 50;
diff --git a/examples/hollow_out/hollow_out_cylinder.scad b/examples/hollow_out/hollow_out_cylinder.scad
index 6ac3d147..87c5d727 100644
--- a/examples/hollow_out/hollow_out_cylinder.scad
+++ b/examples/hollow_out/hollow_out_cylinder.scad
@@ -1,7 +1,7 @@
 use <hull_polyline3d.scad>;
 use <experimental/tri_delaunay.scad>;
 use <experimental/tri_bisectors.scad>;
-use <experimental/ptf_bend.scad>;
+use <ptf/ptf_bend.scad>;
 
 size = [100, 40];
 pt_nums = 20;
diff --git a/examples/hollow_out/hollow_out_holder.scad b/examples/hollow_out/hollow_out_holder.scad
index c2326d89..57e2201c 100644
--- a/examples/hollow_out/hollow_out_holder.scad
+++ b/examples/hollow_out/hollow_out_holder.scad
@@ -1,5 +1,5 @@
 use <hull_polyline3d.scad>;
-use <experimental/ptf_bend.scad>;
+use <ptf/ptf_bend.scad>;
 use <hollow_out_square.scad>;
 
 width = 5;
diff --git a/examples/hollow_out/hollow_out_torus.scad b/examples/hollow_out/hollow_out_torus.scad
index 27192a74..0400a759 100644
--- a/examples/hollow_out/hollow_out_torus.scad
+++ b/examples/hollow_out/hollow_out_torus.scad
@@ -1,5 +1,5 @@
 use <hull_polyline3d.scad>;
-use <experimental/ptf_torus.scad>;
+use <ptf/ptf_torus.scad>;
 use <hollow_out_square.scad>;
 
 width = 5;
diff --git a/examples/maze/mobius_maze.scad b/examples/maze/mobius_maze.scad
index 2799b7a3..d1951cdc 100644
--- a/examples/maze/mobius_maze.scad
+++ b/examples/maze/mobius_maze.scad
@@ -1,7 +1,7 @@
 use <hull_polyline3d.scad>;
 use <experimental/mz_blocks.scad>;
 use <experimental/mz_walls.scad>;
-use <experimental/ptf_ring.scad>;
+use <ptf/ptf_ring.scad>;
 
 rows = 48;
 columns = 8;
diff --git a/examples/maze/noisy_circle_maze.scad b/examples/maze/noisy_circle_maze.scad
index 7e61dcbe..c7551a5e 100644
--- a/examples/maze/noisy_circle_maze.scad
+++ b/examples/maze/noisy_circle_maze.scad
@@ -2,7 +2,7 @@ use <hull_polyline2d.scad>;
 use <util/rand.scad>;
 use <experimental/mz_blocks.scad>;
 use <experimental/mz_walls.scad>;
-use <experimental/ptf_circle.scad>;
+use <ptf/ptf_circle.scad>;
 use <experimental/pnoise2.scad>;
 
 module noisy_circle_maze(start, r_blocks, block_width, wall_thickness, origin_offset, noisy_factor) {
diff --git a/examples/maze/sphere_maze.scad b/examples/maze/sphere_maze.scad
index efdd5dfb..972a5741 100644
--- a/examples/maze/sphere_maze.scad
+++ b/examples/maze/sphere_maze.scad
@@ -2,7 +2,7 @@ use <hull_polyline3d.scad>;
 use <matrix/m_rotation.scad>;
 use <experimental/mz_blocks.scad>;
 use <experimental/mz_walls.scad>;
-use <experimental/ptf_sphere.scad>;
+use <ptf/ptf_sphere.scad>;
 
 r = 10;
 rows = 24;
diff --git a/examples/maze/torus_maze.scad b/examples/maze/torus_maze.scad
index f4a5c172..948f4452 100644
--- a/examples/maze/torus_maze.scad
+++ b/examples/maze/torus_maze.scad
@@ -1,5 +1,5 @@
 use <hull_polyline3d.scad>;
-use <experimental/ptf_torus.scad>;
+use <ptf/ptf_torus.scad>;
 use <experimental/mz_blocks.scad>;
 use <experimental/mz_walls.scad>;
 
diff --git a/examples/maze/twisted_maze.scad b/examples/maze/twisted_maze.scad
index 98e3ef9d..74c26c11 100644
--- a/examples/maze/twisted_maze.scad
+++ b/examples/maze/twisted_maze.scad
@@ -1,7 +1,7 @@
 use <hull_polyline3d.scad>;
 use <experimental/mz_blocks.scad>;
 use <experimental/mz_walls.scad>;
-use <experimental/ptf_y_twist.scad>;
+use <ptf/ptf_y_twist.scad>;
 
 rows = 16;
 columns = 8;
diff --git a/examples/perlin_noise_cylinder.scad b/examples/perlin_noise_cylinder.scad
index 53fdf059..963c981a 100644
--- a/examples/perlin_noise_cylinder.scad
+++ b/examples/perlin_noise_cylinder.scad
@@ -1,7 +1,7 @@
 use <util/rand.scad>;
 use <experimental/pnoise2s.scad>;
 use <experimental/sf_solidify.scad>;
-use <experimental/ptf_bend.scad>;
+use <ptf/ptf_bend.scad>;
 use <util/slice.scad>;
 
 radius = 40;
diff --git a/examples/tiled_line_mobius.scad b/examples/tiled_line_mobius.scad
index 67931cba..07a59996 100644
--- a/examples/tiled_line_mobius.scad
+++ b/examples/tiled_line_mobius.scad
@@ -1,6 +1,6 @@
 use <util/rand.scad>;
 use <hull_polyline3d.scad>;
-use <experimental/ptf_ring.scad>;
+use <ptf/ptf_ring.scad>;
 
 size = [20, 100];
 line_width = 1;
diff --git a/examples/tiled_line_torus.scad b/examples/tiled_line_torus.scad
index 143dc8df..96cf6f71 100644
--- a/examples/tiled_line_torus.scad
+++ b/examples/tiled_line_torus.scad
@@ -1,6 +1,6 @@
 use <util/rand.scad>;
 use <hull_polyline3d.scad>;
-use <experimental/ptf_torus.scad>;
+use <ptf/ptf_torus.scad>;
 
 size = [20, 50];
 line_width = 1;
diff --git a/src/experimental/sf_bend.scad b/src/experimental/sf_bend.scad
index 634cab67..2792e13e 100644
--- a/src/experimental/sf_bend.scad
+++ b/src/experimental/sf_bend.scad
@@ -1,6 +1,6 @@
 use <experimental/_impl/_sf_square_surfaces.scad>;
 use <experimental/sf_solidify.scad>;
-use <experimental/ptf_bend.scad>;
+use <ptf/ptf_bend.scad>;
 
 /*
     levels : A list of numbers (0 ~ 255).
diff --git a/src/experimental/sf_ring.scad b/src/experimental/sf_ring.scad
index 9116b1ae..d6033b2f 100644
--- a/src/experimental/sf_ring.scad
+++ b/src/experimental/sf_ring.scad
@@ -1,6 +1,6 @@
 use <experimental/_impl/_sf_square_surfaces.scad>;
 use <experimental/sf_solidify.scad>;
-use <experimental/ptf_ring.scad>;
+use <ptf/ptf_ring.scad>;
 
 /*
     levels : A list of numbers (0 ~ 255).
diff --git a/src/experimental/sf_sphere.scad b/src/experimental/sf_sphere.scad
index e2de78fa..8c348045 100644
--- a/src/experimental/sf_sphere.scad
+++ b/src/experimental/sf_sphere.scad
@@ -1,6 +1,6 @@
 use <experimental/_impl/_sf_square_surfaces.scad>;
 use <experimental/sf_solidify.scad>;
-use <experimental/ptf_sphere.scad>;
+use <ptf/ptf_sphere.scad>;
 
 /*
     levels : A list of numbers (0 ~ 255).
diff --git a/src/experimental/sf_torus.scad b/src/experimental/sf_torus.scad
index 2a847ffa..535abcdc 100644
--- a/src/experimental/sf_torus.scad
+++ b/src/experimental/sf_torus.scad
@@ -1,6 +1,6 @@
 use <experimental/_impl/_sf_square_surfaces.scad>;
 use <experimental/sf_solidify.scad>;
-use <experimental/ptf_torus.scad>;
+use <ptf/ptf_torus.scad>;
 
 /*
     levels : A list of numbers (0 ~ 255).
diff --git a/src/experimental/ptf_bend.scad b/src/ptf/ptf_bend.scad
similarity index 100%
rename from src/experimental/ptf_bend.scad
rename to src/ptf/ptf_bend.scad
diff --git a/src/experimental/ptf_ring.scad b/src/ptf/ptf_ring.scad
similarity index 92%
rename from src/experimental/ptf_ring.scad
rename to src/ptf/ptf_ring.scad
index a0170e34..81f93e8d 100644
--- a/src/experimental/ptf_ring.scad
+++ b/src/ptf/ptf_ring.scad
@@ -1,5 +1,5 @@
 use <rotate_p.scad>;
-use <experimental/ptf_y_twist.scad>;
+use <ptf/ptf_y_twist.scad>;
 
 /*
     size: The size of a rectangle.
diff --git a/src/experimental/ptf_sphere.scad b/src/ptf/ptf_sphere.scad
similarity index 100%
rename from src/experimental/ptf_sphere.scad
rename to src/ptf/ptf_sphere.scad
diff --git a/src/experimental/ptf_torus.scad b/src/ptf/ptf_torus.scad
similarity index 100%
rename from src/experimental/ptf_torus.scad
rename to src/ptf/ptf_torus.scad
diff --git a/src/experimental/ptf_x_twist.scad b/src/ptf/ptf_x_twist.scad
similarity index 100%
rename from src/experimental/ptf_x_twist.scad
rename to src/ptf/ptf_x_twist.scad
diff --git a/src/experimental/ptf_y_twist.scad b/src/ptf/ptf_y_twist.scad
similarity index 100%
rename from src/experimental/ptf_y_twist.scad
rename to src/ptf/ptf_y_twist.scad