diff --git a/applications/reconstruct/src/ilw.hpp b/applications/reconstruct/src/ilw.hpp
new file mode 100644
index 0000000000000000000000000000000000000000..200b4734726f2a495aaf51e457bb13940993731f
--- /dev/null
+++ b/applications/reconstruct/src/ilw.hpp
@@ -0,0 +1,37 @@
+#ifndef _FTL_RECONSTRUCT_ILW_HPP_
+#define _FTL_RECONSTRUCT_ILW_HPP_
+
+namespace ftl {
+
+/**
+ * For a set of sources, perform Iterative Lattice Warping to correct the
+ * location of points between the cameras. The algorithm finds possible
+ * correspondences and warps the original pixel lattice of points in each
+ * camera towards the correspondences, iterating the process as many times as
+ * possible. The result is that both local and global adjustment is made to the
+ * point clouds to improve micro alignment that may have been incorrect due to
+ * either inaccurate camera pose estimation or noise/errors in the depth maps.
+ */
+class ILW {
+    public:
+    ILW();
+    ~ILW();
+
+    /**
+     * Set a physical scene that is composed of a set of source cameras.
+     */
+    void setScene(ftl::CameraSetScene *);
+
+    /**
+     * Take a frameset and perform the iterative lattice warping to update
+     * a scene object.
+     */
+    bool process(ftl::rgbd::FrameSet &fs);
+
+    private:
+    ftl::CameraSetScene *scene_;
+};
+
+}
+
+#endif  // _FTL_RECONSTRUCT_ILW_HPP_