--- /dev/null
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<screensaver name="tessellimage" _label="Tessellimage">
+
+ <command arg="-root"/>
+
+ <hgroup>
+ <vgroup>
+ <number id="delay" type="slider" arg="-delay %"
+ _label="Frame rate" _low-label="Low" _high-label="High"
+ low="0" high="100000" default="30000"
+ convert="invert"/>
+
+ <number id="duration2" type="slider" arg="-duration2 %"
+ _label="Speed" _low-label="0.1 second" _high-label="4 seconds"
+ low="0.1" high="4.0" default="0.4"/>
+
+ <number id="duration" type="slider" arg="-duration %"
+ _label="Duration" _low-label="10 seconds" _high-label="10 minutes"
+ low="10" high="600" default="120"/>
+
+ <number id="depth" type="slider" arg="-max-depth %"
+ _label="Complexity" _low-label="Shallow" _high-label="Deep"
+ low="1000" high="100000" default="30000"/>
+
+ </vgroup>
+
+ <vgroup>
+ <xscreensaver-image />
+
+ <boolean id="fill" _label="Fill screen" arg-unset="-no-fill-screen"/>
+ <boolean id="outline" _label="Outline triangles" arg-unset="-no-outline"/>
+ <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
+ <xscreensaver-updater />
+ </vgroup>
+ </hgroup>
+
+ <_description>
+Converts an image to triangles using Delaunay tessellation, and
+animates the result at various depths.
+
+More triangles are allocated to visually complex parts of the image.
+This is accomplished by first computing the first derivative of the
+image: the distance between each pixel and its neighbors (which is
+essentially edge detection or embossing). Then the Delaunay control
+points are chosen by selecting those pixels whose distance value is
+above a certain threshold: those are the pixels that have the largest
+change in color/brightness.
+
+http://en.wikipedia.org/wiki/Delaunay_triangulation
+
+Written by Jamie Zawinski; 2014.
+ </_description>
+</screensaver>