OREN: Octree Residual Network for Real-Time Euclidean Signed Distance Mapping
Extracted source text · arXiv 2510.18999
\documentclass[letterpaper, 10 pt, conference]{cls/ieeeconf}
% Comment this line out if you need a4paper
%\documentclass[a4paper, 10pt, conference]{ieeeconf}
\IEEEoverridecommandlockouts
% This command is only needed if
% you want to use the \thanks command
% Needed to meet printer requirements.
\overrideIEEEmargins
%In case you encounter the following error:
%Error 1010 The PDF file may be corrupt (unable to open PDF file) OR
%Error 1000 An error occurred while parsing a contents stream. Unable to analyze the PDF file.
%This is a known problem with pdfLaTeX conversion filter. The file cannot be opened with acrobat reader
%Please use one of the alternatives below to circumvent this error by uncommenting one or the other
%\pdfobjcompresslevel=0
%\pdfminorversion=4
% See the \addtolength command later in the file to balance the column lengths
% on the last page of the document
% The following packages can be found on http:\\www.ctan.org
\usepackage{graphics} % for pdf, bitmapped graphics files
%\usepackage{epsfig} % for postscript graphics files
\usepackage{graphicx,tabularx,adjustbox}
\usepackage{tikz}
\usetikzlibrary{fadings}
\usepackage{multirow}
\usepackage{hhline}
\usepackage{xcolor}
\usepackage{float}
\usepackage{subcaption}
\usepackage{amsmath} % assumes amsmath package installed
\usepackage{amssymb} % assumes amsmath package installed
\usepackage{amsfonts,amstext,dsfont,mathtools,bbm}
\let\proof\relax \let\endproof\relax
\usepackage{amsthm}
\usepackage{balance}
\usepackage{cite}
\usepackage[bookmarks=true, colorlinks, breaklinks=true]{hyperref}
% \captionsetup[table]{skip=2pt}
\setlength{\abovedisplayskip}{3pt} % space before an equation
\setlength{\belowdisplayskip}{2pt} % space after an equation
\setlength{\abovecaptionskip}{1pt} % space above caption
\setlength{\belowcaptionskip}{1pt} % space below caption
\setlength{\abovedisplayshortskip}{0pt}
\setlength{\belowdisplayshortskip}{0pt}
\captionsetup[figure]{skip=1pt}
\subcaptionsetup[figure]{skip=1pt}
\input{cls/sym.tex}
%% Comments:
\newcommand{\TODO}[1]{{\color{red}#1}}
\newcommand{\edit}[1]{{\color{cyan}#1}}
\newcommand{\NA}[1]{$\spadesuit$\footnote{\color{red}Nikolay: #1}}
\newcommand{\ZD}[1]{$\heartsuit$\footnote{\color{blue}Zhirui: #1}}
\newcommand{\QH}[1]{$\heartsuit$\footnote{\color{green}Qihao: #1}}
\newcommand{\TX}[1]{$\heartsuit$\footnote{\color{orange}Tianxing: #1}}
\def\htwomapping{$\text{H}_2$-Mapping}
\def\methodname{$\nabla$-SDF}
\def\papertitle{\methodname: Learning Euclidean Signed Distance Functions Online with Gradient-Augmented Octree Interpolation and Neural Residual}
\title{\LARGE \bf\papertitle}
\input{tex/author}
\begin{document}
\bstctlcite{IEEEexample:BSTcontrol}
\maketitle
\thispagestyle{empty}
\pagestyle{empty}
\input{tex/abstract}
\input{tex/introduction}
\input{tex/fig2}
\input{tex/related_work}
\input{tex/problem_statement}
\input{tex/technical_approach}
\input{tex/evaluation}
\input{tex/concolusion}
\balance
{\small
\bibliographystyle{IEEEtran}
\bibliography{bib/main.bib}
}
\end{document}
\DeclareMathOperator*{\tr}{tr}
\DeclareMathOperator*{\diag}{diag}
% Bold fonts:
\newcommand{\bfa}{\mathbf{a}}
\newcommand{\bfb}{\mathbf{b}}
\newcommand{\bfc}{\mathbf{c}}
\newcommand{\bfd}{\mathbf{d}}
\newcommand{\bfe}{\mathbf{e}}
\newcommand{\bff}{\mathbf{f}}
\newcommand{\bfg}{\mathbf{g}}
\newcommand{\bfh}{\mathbf{h}}
\newcommand{\bfi}{\mathbf{i}}
\newcommand{\bfj}{\mathbf{j}}
\newcommand{\bfk}{\mathbf{k}}
\newcommand{\bfl}{\mathbf{l}}
\newcommand{\bfm}{\mathbf{m}}
\newcommand{\bfn}{\mathbf{n}}
\newcommand{\bfo}{\mathbf{o}}
\newcommand{\bfp}{\mathbf{p}}
\newcommand{\bfq}{\mathbf{q}}
\newcommand{\bfr}{\mathbf{r}}
\newcommand{\bfs}{\mathbf{s}}
\newcommand{\bft}{\mathbf{t}}
\newcommand{\bfu}{\mathbf{u}}
\newcommand{\bfv}{\mathbf{v}}
\newcommand{\bfw}{\mathbf{w}}
\newcommand{\bfx}{\mathbf{x}}
\newcommand{\bfy}{\mathbf{y}}
\newcommand{\bfz}{\mathbf{z}}
\newcommand{\bfalpha}{\boldsymbol{\alpha}}
\newcommand{\bfbeta}{\boldsymbol{\beta}}
\newcommand{\bfgamma}{\boldsymbol{\gamma}}
\newcommand{\bfdelta}{\boldsymbol{\delta}}
\newcommand{\bfepsilon}{\boldsymbol{\epsilon}}
\newcommand{\bfzeta}{\boldsymbol{\zeta}}
\newcommand{\bfeta}{\boldsymbol{\eta}}
\newcommand{\bftheta}{\boldsymbol{\theta}}
\newcommand{\bfiota}{\boldsymbol{\iota}}
\newcommand{\bfkappa}{\boldsymbol{\kappa}}
\newcommand{\bflambda}{\boldsymbol{\lambda}}
\newcommand{\bfmu}{\boldsymbol{\mu}}
\newcommand{\bfnu}{\boldsymbol{\nu}}
\newcommand{\bfomicron}{\boldsymbol{\omicron}}
\newcommand{\bfpi}{\boldsymbol{\pi}}
\newcommand{\bfrho}{\boldsymbol{\rho}}
\newcommand{\bfsigma}{\boldsymbol{\sigma}}
\newcommand{\bftau}{\boldsymbol{\tau}}
\newcommand{\bfupsilon}{\boldsymbol{\upsilon}}
\newcommand{\bfphi}{\boldsymbol{\phi}}
\newcommand{\bfchi}{\boldsymbol{\chi}}
\newcommand{\bfpsi}{\boldsymbol{\psi}}
\newcommand{\bfomega}{\boldsymbol{\omega}}
\newcommand{\bfxi}{\boldsymbol{\xi}}
\newcommand{\bfell}{\boldsymbol{\ell}}
\newcommand{\bfA}{\mathbf{A}}
\newcommand{\bfB}{\mathbf{B}}
\newcommand{\bfC}{\mathbf{C}}
\newcommand{\bfD}{\mathbf{D}}
\newcommand{\bfE}{\mathbf{E}}
\newcommand{\bfF}{\mathbf{F}}
\newcommand{\bfG}{\mathbf{G}}
\newcommand{\bfH}{\mathbf{H}}
\newcommand{\bfI}{\mathbf{I}}
\newcommand{\bfJ}{\mathbf{J}}
\newcommand{\bfK}{\mathbf{K}}
\newcommand{\bfL}{\mathbf{L}}
\newcommand{\bfM}{\mathbf{M}}
\newcommand{\bfN}{\mathbf{N}}
\newcommand{\bfO}{\mathbf{O}}
\newcommand{\bfP}{\mathbf{P}}
\newcommand{\bfQ}{\mathbf{Q}}
\newcommand{\bfR}{\mathbf{R}}
\newcommand{\bfS}{\mathbf{S}}
\newcommand{\bfT}{\mathbf{T}}
\newcommand{\bfU}{\mathbf{U}}
\newcommand{\bfV}{\mathbf{V}}
\newcommand{\bfW}{\mathbf{W}}
\newcommand{\bfX}{\mathbf{X}}
\newcommand{\bfY}{\mathbf{Y}}
\newcommand{\bfZ}{\mathbf{Z}}
\newcommand{\bfGamma}{\boldsymbol{\Gamma}}
\newcommand{\bfDelta}{\boldsymbol{\Delta}}
\newcommand{\bfTheta}{\boldsymbol{\Theta}}
\newcommand{\bfLambda}{\boldsymbol{\Lambda}}
\newcommand{\bfPi}{\boldsymbol{\Pi}}
\newcommand{\bfSigma}{\boldsymbol{\Sigma}}
\newcommand{\bfUpsilon}{\boldsymbol{\Upsilon}}
\newcommand{\bfPhi}{\boldsymbol{\Phi}}
\newcommand{\bfPsi}{\boldsymbol{\Psi}}
\newcommand{\bfOmega}{\boldsymbol{\Omega}}
% Blackboard Bold:
\newcommand{\bbA}{\mathbb{A}}
\newcommand{\bbB}{\mathbb{B}}
\newcommand{\bbC}{\mathbb{C}}
\newcommand{\bbD}{\mathbb{D}}
\newcommand{\bbE}{\mathbb{E}}
\newcommand{\bbF}{\mathbb{F}}
\newcommand{\bbG}{\mathbb{G}}
\newcommand{\bbH}{\mathbb{H}}
\newcommand{\bbI}{\mathbb{I}}
\newcommand{\bbJ}{\mathbb{J}}
\newcommand{\bbK}{\mathbb{K}}
\newcommand{\bbL}{\mathbb{L}}
\newcommand{\bbM}{\mathbb{M}}
\newcommand{\bbN}{\mathbb{N}}
\newcommand{\bbO}{\mathbb{O}}
\newcommand{\bbP}{\mathbb{P}}
\newcommand{\bbQ}{\mathbb{Q}}
\newcommand{\bbR}{\mathbb{R}}
\newcommand{\bbS}{\mathbb{S}}
\newcommand{\bbT}{\mathbb{T}}
\newcommand{\bbU}{\mathbb{U}}
\newcommand{\bbV}{\mathbb{V}}
\newcommand{\bbW}{\mathbb{W}}
\newcommand{\bbX}{\mathbb{X}}
\newcommand{\bbY}{\mathbb{Y}}
\newcommand{\bbZ}{\mathbb{Z}}
% Calligraphic fonts
\newcommand{\calA}{\mathcal{A}}
\newcommand{\calB}{\mathcal{B}}
\newcommand{\calC}{\mathcal{C}}
\newcommand{\calD}{\mathcal{D}}
\newcommand{\calE}{\mathcal{E}}
\newcommand{\calF}{\mathcal{F}}
\newcommand{\calG}{\mathcal{G}}
\newcommand{\calH}{\mathcal{H}}
\newcommand{\calI}{\mathcal{I}}
\newcommand{\calJ}{\mathcal{J}}
\newcommand{\calK}{\mathcal{K}}
\newcommand{\calL}{\mathcal{L}}
\newcommand{\calM}{\mathcal{M}}
\newcommand{\calN}{\mathcal{N}}
\newcommand{\calO}{\mathcal{O}}
\newcommand{\calP}{\mathcal{P}}
\newcommand{\calQ}{\mathcal{Q}}
\newcommand{\calR}{\mathcal{R}}
\newcommand{\calS}{\mathcal{S}}
\newcommand{\calT}{\mathcal{T}}
\newcommand{\calU}{\mathcal{U}}
\newcommand{\calV}{\mathcal{V}}
\newcommand{\calW}{\mathcal{W}}
\newcommand{\calX}{\mathcal{X}}
\newcommand{\calY}{\mathcal{Y}}
\newcommand{\calZ}{\mathcal{Z}}
\newcommand{\AP}{\calA\!\calP}
% Bold caligraphic fonts
\newcommand{\bfcalA}{\boldsymbol{\mathcal{A}}}
\newcommand{\bfcalB}{\boldsymbol{\mathcal{B}}}
\newcommand{\bfcalC}{\boldsymbol{\mathcal{C}}}
\newcommand{\bfcalD}{\boldsymbol{\mathcal{D}}}
\newcommand{\bfcalE}{\boldsymbol{\mathcal{E}}}
\newcommand{\bfcalF}{\boldsymbol{\mathcal{F}}}
\newcommand{\bfcalG}{\boldsymbol{\mathcal{G}}}
\newcommand{\bfcalH}{\boldsymbol{\mathcal{H}}}
\newcommand{\bfcalI}{\boldsymbol{\mathcal{I}}}
\newcommand{\bfcalJ}{\boldsymbol{\mathcal{J}}}
\newcommand{\bfcalK}{\boldsymbol{\mathcal{K}}}
\newcommand{\bfcalL}{\boldsymbol{\mathcal{L}}}
\newcommand{\bfcalM}{\boldsymbol{\mathcal{M}}}
\newcommand{\bfcalN}{\boldsymbol{\mathcal{N}}}
\newcommand{\bfcalO}{\boldsymbol{\mathcal{O}}}
\newcommand{\bfcalP}{\boldsymbol{\mathcal{P}}}
\newcommand{\bfcalQ}{\boldsymbol{\mathcal{Q}}}
\newcommand{\bfcalR}{\boldsymbol{\mathcal{R}}}
\newcommand{\bfcalS}{\boldsymbol{\mathcal{S}}}
\newcommand{\bfcalT}{\boldsymbol{\mathcal{T}}}
\newcommand{\bfcalU}{\boldsymbol{\mathcal{U}}}
\newcommand{\bfcalV}{\boldsymbol{\mathcal{V}}}
\newcommand{\bfcalW}{\boldsymbol{\mathcal{W}}}
\newcommand{\bfcalX}{\boldsymbol{\mathcal{X}}}
\newcommand{\bfcalY}{\boldsymbol{\mathcal{Y}}}
\newcommand{\bfcalZ}{\boldsymbol{\mathcal{Z}}}
% Sans serif fonts:
\newcommand{\sfA}{\textsf{A}}
\newcommand{\sfB}{\textsf{B}}
\newcommand{\sfC}{\textsf{C}}
\newcommand{\sfD}{\textsf{D}}
\newcommand{\sfE}{\textsf{E}}
\newcommand{\sfF}{\textsf{F}}
\newcommand{\sfG}{\textsf{G}}
\newcommand{\sfH}{\textsf{H}}
\newcommand{\sfI}{\textsf{I}}
\newcommand{\sfJ}{\textsf{J}}
\newcommand{\sfK}{\textsf{K}}
\newcommand{\sfL}{\textsf{L}}
\newcommand{\sfM}{\textsf{M}}
\newcommand{\sfN}{\textsf{N}}
\newcommand{\sfO}{\textsf{O}}
\newcommand{\sfP}{\textsf{P}}
\newcommand{\sfQ}{\textsf{Q}}
\newcommand{\sfR}{\textsf{R}}
\newcommand{\sfS}{\textsf{S}}
\newcommand{\sfT}{\textsf{T}}
\newcommand{\sfU}{\textsf{U}}
\newcommand{\sfV}{\textsf{V}}
\newcommand{\sfW}{\textsf{W}}
\newcommand{\sfX}{\textsf{X}}
\newcommand{\sfY}{\textsf{Y}}
\newcommand{\sfZ}{\textsf{Z}}
% Environments
\newtheorem{theorem}{Theorem}
\newtheorem{proposition}{Proposition}
\newtheorem{corollary}{Corollary}
\newtheorem{lemma}{Lemma}
% \theoremstyle{definition}
\newtheorem{definition}{Definition}
\newtheorem{assumption}{Assumption}
% \newtheorem*{assumption*}{Assumption}
% \newtheorem*{problem*}{Problem}
\newtheorem{problem}{Problem}
% \theoremstyle{remark}
\newtheorem{remark}{Remark}
% \author{Anonymous For Review}
\author{\authorblockN{Zhirui Dai$^{1}$$^{*}$ \qquad Qihao Qian$^{1}$$^{*}$ \qquad Tianxing Fan$^{1}$ \qquad Nikolay Atanasov$^{1}$}% <-this % stops a space
\thanks{$^{*}$Equal contribution}%
\thanks{$^{1}$The authors are with the Department of Electrical and Computer Engineering, University of California San Diego, La Jolla, CA 92093, USA, e-mails: {\tt\small \{zhdai,q2qian,t2fan,natanasov\}@ucsd.edu}}%
}
% 1. discrete methods are not continuous (cannot support downstream optimization tasks well) and struggle to scale up for larger scenes and higher fidelity.
% 2. existing neural methods learn compact and continuous implicit representation of SDF but focous on high-quality TSDF only and rarely run in real time.
% 3. our method is able to accurately and efficiently learn a hybrid
\begin{abstract}
Estimation of signed distance functions (SDFs) from point cloud data has been shown to benefit many robot autonomy capabilities, including localization, mapping, motion planning, and control. Methods that support online and large-scale SDF reconstruction tend to rely on discrete volumetric data structures, which affect the continuity and differentiability of the SDF estimates. Recently, using implicit features, neural network methods have demonstrated high-fidelity and differentiable SDF reconstruction but they tend to be less efficient, can experience catastrophic forgetting and memory limitations in large environments, and are often restricted to truncated SDFs. This work proposes \methodname, a hybrid method that combines an explicit prior obtained from gradient-augmented octree interpolation with an implicit neural residual. Our method achieves non-truncated (Euclidean) SDF reconstruction with computational and memory efficiency comparable to volumetric methods and differentiability and accuracy comparable to neural network methods. Extensive experiments demonstrate that \methodname{} outperforms the state of the art in terms of accuracy and efficiency, providing a scalable solution for downstream tasks in robotics and computer vision.
\end{abstract}
%Accurate and efficient signed distance function (SDF) representations are crucial for real-time applications like online 3D reconstruction, AR/VR, path planning, localization, and safe control. Although existing discrete methods have achieved fast and large-scale SDF reconstruction using explicit volumetric data structures, these methods are not continuous nor differentiable by design. In contrast, neural network methods use implicit neural features to achieve differentiability and attain promising results on higher-fidelity reconstruction but experience catastrophic forgetting, memory limitations in large environments, and are often restricted to truncated SDF (TSDF). This work proposes \methodname, a hybrid method that combines explicit prior obtained from gradient-augmented octree interpolation and implicit neural residual. Instead of being restricted to TSDF, our method provides SDF learning for the whole space, which not only achieves both efficiency like volumetric methods and differentiability like existing neural network methods but also maintains accuracy without forgetting. Extensive experiments demonstrate that our method achieves superior accuracy and efficiency compared to existing approaches. Our contributions advance the state of the art in neural SDF learning, providing a scalable solution for downstream tasks in robotics and computer vision.
\section{Introduction}
\label{sec:introduction}
Accurate and differentiable geometric environment representations are critical for many functions in robot autonomy and computer vision, including simultaneous localization and mapping \cite{ortiz_isdf_2022,pan_pin-slam_2024,miso2025}, rendering and AR/VR \cite{Chou_2023_ICCV,Vicini2022,wang_neus2_2023}, autonomous navigation \cite{oleynikova_voxblox_2017,long_sensor-based_2025} and manipulation \cite{ReDSDF,li2024config,li2024robot}. In robotics, fast updates of the environment model from sensor observations and access to gradient information are important to enable robots to navigate reactively and safely and to interact with the environment precisely, while a small memory footprint is important for the scalability of the representation.
In this work, we focus on signed distance function (SDF) reconstruction. Given a query point, an SDF returns the signed distance to the nearest surface in the environment with sign indicating whether the query is in free (positive) or occupied (negative) space. SDFs have received increasing attention due to their constant-time complexity for distance and collision queries and their ability to capture complex obstacle surfaces implicitly as a zero-level set.
SDF reconstruction methods can roughly be organized into three categories: volumetric methods (e.g., \cite{newcombe_kinectfusion_2011,oleynikova_voxblox_2017}), Gaussian Process (GP) methods (e.g., \cite{lee2019gpis,wu_vdb-gpdf_2025}), and neural network methods (e.g., \cite{park_deepsdf_2019,wang_neus_2021}). We review representative papers from these categories in Sec.~\ref{sec:related_work}. Volumetric methods utilize advanced data structures, like octrees and hashmaps, and are known for their real-time performance and scalability to large scenes. However, they provide non-differentiable SDF estimates and require significant storage to achieve higher accuracy. GP methods learn continuous SDF models with uncertainty quantification but often suffer from high computational complexity and poor scalability. Recently, neural network methods have shown great potential to learn compact and accurate SDF representations, but they tend to be restricted to truncated SDF and struggle with catastrophic forgetting in large scenes or in online settings.
\input{tex/fig1}
We propose \methodname{}, a hybrid method that combines the strengths of volumetric methods, in the form of an explicit SDF prior obtained from octree interpolation, and neural network methods, in the form of implicit features decoded into a residual correction of the explicit prior. To construct the explicit prior, we use a semi-sparse octree with SDF and gradient estimates stored at the octant vertices and design a new gradient-augmented interpolation approach to obtain smooth and accurate SDF priors at arbitrary query positions. We augment the prior prediction with a neural network residual, which recovers fine geometric details of the observed surface from implicit features. We train our hybrid explicit-implicit model using three loss functions that supervise both near-surface and distant SDF values and accelerate the convergence to achieve real-time highly accurate SDF reconstruction.
The closest works to ours are \htwomapping{} \cite{jiang_h2-mapping_2023} and HIO-SDF \cite{hio-sdf_2024}. Similar to our method, \htwomapping{} applies trilinear interpolation in a sparse octree to obtain an SDF prior and trains a neural network residual. In contrast with our method, \htwomapping{} reconstructs only truncated (near-surface) SDF. HIO-SDF achieves non-truncated SDF reconstruction using Voxfield \cite{pan_voxfield_2022} to generate an SDF prior and a neural network trained on a dataset of global SDF priors and local SDF approximations from the latest point cloud. The global priors accelerate the convergence and prevent forgetting, but the accuracy of the learned SDF is limited by the Voxfield prior. Instead, our method directly optimizes the parameters of the octree to learn a more accurate prior and uses the residual network to further improve the accuracy.
In summary, our work makes the following contributions.
\begin{itemize}
\item We introduce a new gradient-augmented interpolation in a semi-sparse octree to obtain an SDF prior, improving the accuracy, memory, and training speed for subsequent SDF residual learning. %We derive the error bound of our gradient-augmented interpolation, showing that our method can provide accurate and robust SDF priors.
\item We formulate a hybrid model that combines the explicit priors with an implicit neural residual, enabling accurate SDF learning both near to and far from the observed surfaces. We also design loss functions to encourage globally accurate SDF learning and accelerate the training process to achieve real-time performance.
\end{itemize}
\tikzfading[name=fade out, inner color=transparent!0, outer color=transparent!100]
\begin{figure}[t]
\centering
% \includegraphics[width=\linewidth,trim={0 60pt 0 60pt},clip]
\includegraphics[width=\linewidth,trim={0 0 0 0},clip]
{fig/sdf_slice_with_mesh_add_light_traj.png}
\caption{\small \methodname{} reconstructs an accurate Euclidean signed distance function online from streaming point cloud data.}
\vspace{-3ex}
\label{fig:teaser}
\end{figure}
\begin{figure*}[t]
\centering
\includegraphics[width=\linewidth]{fig/system-diagram.png}
\caption{\small Method Overview: a) We keep key frames with small overlap and those that maximize the surface coverage for training; b) with the selected key frames and the current frame, we generate three types of samples: \textcolor{red}{surface} points, \textcolor{orange}{perturbed} points around the surface, and \textcolor{cyan}{free-space} points; c) to predict SDF, we first obtain an SDF prior $d_{ga}(\bfx)$ with gradient-augmented interpolation in a semi-sparse octree, where each octant vertex has estimated SDF value and gradient; d) a multi-resolution hash grid with an MLP decoder is used to obtain an SDF residual correction $\delta_d(\bfx)$; e) the SDF prior $d_{ga}(\bfx)$ and the SDF residual $\delta_d(\bfx)$ are combined as the final SDF prediction $\hat{d}(\bfx) = d_{ga}(\bfx) + \delta_d(\bfx)$, and the parameters are trained with three loss functions: \textcolor{red}{reconstruction} loss, \textcolor{violet}{Eikonal} loss and \textcolor{green}{projection} loss.}
\label{fig:method_overview}
\vspace{-4mm}
\end{figure*}
\section{Related Work}
\label{sec:related_work}
Various methods have been proposed to learn SDF, which can be roughly categorized into three groups: volumetric methods \cite{curless_volumetric_1996,newcombe_kinectfusion_2011,kahler_very_2015,oleynikova_voxblox_2017,han_fiesta_2019,pan_voxfield_2022,millane_nvblox_2024}, GP-based methods \cite{lee2019gpis,lan2021loggpis,wu_vdb-gpdf_2025}, and neural network based methods \cite{park_deepsdf_2019,ortiz_isdf_2022}. We first review these three kinds of methods and then discuss the recent trend of using hybrid models for SDF reconstruction.
\vspace{-4mm}
\subsection{Volumetric SDF Reconstruction}
Volumetric methods like Voxblox \cite{oleynikova_voxblox_2017} achieve real-time SDF reconstruction. A regular grid with voxel hashing is used to efficiently look up voxels for updates and queries. Voxblox \cite{oleynikova_voxblox_2017} builds a TSDF layer by projective distance, which is the distance between the voxel center and the observed surface point, then updates an SDF layer by breadth-first search (BFS) and the BFS path length. Both the projective distance and the BFS path length introduce inaccuracies in the SDF reconstruction.
%FIESTA \cite{han_fiesta_2019} partially addresses the issue by using an occupancy map and replacing the BFS path length with the distance between the center of the being updated voxel and its nearest occupied voxel.
%Voxfield \cite{pan_voxfield_2022} goes further by computing the distance between the voxel center and the nearest surface point estimated from the non-projective truncated SDF and its gradient stored in the nearest occupied voxel.
Subsequent works \cite{han_fiesta_2019,pan_voxfield_2022} manage to narrow the errors.
However, all of these methods rely on a discrete SDF representation, which is non-differentiable and limits the accuracy to the grid resolution.
It is also difficult to scale up the dense grid to large scenes with high fidelity. In contrast, our work uses an octree to reduce the memory cost and employs a multi-resolution neural hash grid with an MLP decoder to learn a differentiable implicit compact representation, capturing the geometric details.
\subsection{Gaussian Process SDF Reconstruction}
GP-based methods \cite{lee2019gpis,lan2021loggpis,wu_vdb-gpdf_2025} learn continuous SDF representations, which support SDF gradient computation and uncertainty quantification. Although GPIS \cite{lee2019gpis} achieves accurate results in near-surface SDF prediction, it fails to extrapolate to positions away from the surface. Log-GPIS \cite{lan2021loggpis} and VDB-GPDF \cite{wu_vdb-gpdf_2025} learn unsigned distance functions in log space, which generalize well globally but omit the sign and struggle to scale to large environments due to the cubic complexity of the matrix inverse during training.
In comparison, our method uses interpolation, which has the complexity of $O(1)$, and matrix multiplication, which has a roughly quadratic complexity, to compute the SDF prior and the SDF residual respectively. Besides, the octree structure and the neural hash grid have a smaller memory footprint than the gram matrix used by GP.
\vspace{-1mm}
\subsection{Neural Network SDF Reconstruction}
DeepSDF \cite{park_deepsdf_2019} was among the first methods to demonstrate that neural networks can learn compact and continuous implicit SDF representations. This inspired many subsequent neural network methods for SDF reconstruction.
iSDF \cite{ortiz_isdf_2022} formulates an incremental learning approach for SDF reconstruction by iteratively updating the MLP with training samples generated from a key frame set and proposes Eikonal regularization to encourage the model to satisfy the Eikonal property of SDF.
NeuS \cite{wang_neus_2021} learns SDF and neural radiance fields (NeRF) \cite{nerf2020} simultaneously, allowing the two fields to improve each other by using an SDF-based unbiased volume density formulation.
Besides, many other works like IGR \cite{gropp_implicit_2020}, NGLoD \cite{takikawa_lod_2021} propose various neural network designs, loss functions, training procedures, and so on to achieve better SDF reconstruction.
These works show that neural networks are able to learn SDF accurately near the surface, which is sufficient for high-fidelity surface reconstruction. However, they rarely pay attention to learning accurate SDF at locations away from the surface.
Existing neural network methods \cite{wang_hotspot_2024} that learn non-truncated SDF, which are mostly object-level, require extensive training data and enough training time to achieve satisfactory accuracy.
\vspace{-2mm}
\subsection{Hybrid Methods for SDF Reconstruction}
Recently, hybrid models that combine explicit geometric structures with implicit neural features show promising results. PIN-SLAM \cite{pan_pin-slam_2024} stores neural features in near-surface voxels. Given a query point, its SDF prediction is a weighted sum of $k$ SDF predictions, obtained by feeding $k$ nearest neural features with local positions into a global decoder.
\htwomapping{} \cite{jiang_h2-mapping_2023} presents another model that combines an octree-based SDF prior with a neural residual. However, both PIN-SLAM and \htwomapping{} learn truncated SDF.
HIO-SDF \cite{hio-sdf_2024} removes truncation by running Voxfield \cite{pan_voxfield_2022} first to generate global SDF priors, which are combined with local SDF approximations to train a neural network. However, the accuracy and speed are limited by the volumetric method. As the observed area grows, the neural network, whose number of parameters is fixed, tends to learn an over-smooth SDF.
In contrast, our method, \methodname, builds a semi-sparse octree to store the prior of SDF values and gradients, which is extendable as the scene grows and efficiently represents the SDF of the whole space. With gradient-augmented interpolation in the octree, our method can produce more accurate SDF priors, leaving more capacity for the subsequent network to recover surface geometric details.
\section{Problem Statement}
\label{sec:problem_statement}
Consider a 3D environment with a set of obstacles $\calO \subset \bbR^3$. The SDF $d: \bbR^3 \rightarrow \bbR$ of $\calO$ is defined as the shortest distance from any point $\bfx \in \bbR^3$ to the obstacle surface $\partial \calO$, with a sign indicating whether $\bfx$ is inside or outside of $\calO$:
%
\begin{equation} \label{eq:sdf_definition}
d(\bfx) =
\begin{cases}
\phantom{+}\min_{\bfy \in \partial \calO} \left\|\bfx - \bfy\right\|_2, & \bfx \not\in \calO, \\
-\min_{\bfy \in \partial \calO} \left\|\bfx - \bfy\right\|_2, & \bfx \in \calO.
\end{cases}
\end{equation}
%
The SDF satisfies two key properties: 1) the obstacle surface is encoded as the zero-level set, $d(\bfx) = 0$, $\forall \bfx \in \partial\calO$, and 2) the gradient of $d(\bfx)$ is the unit vector pointing away from the nearest surface point and satisfies an Eikonal equation~\cite{ortiz_isdf_2022}:
%
\begin{equation}
\nabla d(\bfx)=\frac{\bfx-\bfx_*}{d(\bfx)}, \quad \left\|\nabla d(\bfx)\right\|_2=1, \; \text{a.e.},\label{eq:sdf_constraints}
\end{equation}
%
where $\bfx_* \in \arg \min_{\bfy\in\partial\calO} \left\|\bfx-\bfy\right\|_2$.
Given a stream of point clouds obtained from range sensor measurements (e.g., from LiDAR or depth camera),
$\{\bfo_t, \calP_t\}_{t=1}$,
where $\bfo_t$ is the sensor position at time step $t$ and $\calP_t$ is the set of observed surface points in the global frame, our objective is to approximate the SDF $d(\bfx)$ of $\calO$ as a scalar field, $\hat{d}: \bbR^3 \rightarrow \bbR$. We also aim to have $\hat{d}$ capture the SDF gradient accurately.
\section{\methodname: Efficient Network for Learning Globally Accurate SDF}
\label{sec:technical_approach}
Our method employs a hybrid model to reconstruct SDF. We use a semi-sparse octree, where certain octants with no surface contained are created, to store explicit SDF and SDF gradient estimates in order to compute a coarse SDF prior, described in Sec. \ref{sec:sdf_prior}. To recover the geometric details, we use a multi-resolution hash grid of implicit neural features, which allows capturing the residuals at different scales, and an MLP decoder, which produces residual corrections to the coarse SDF from the octree. The neural feature hash grid and MLP decoder are described in Sec. \ref{sec:sdf_residual}. To train our hybrid model efficiently, we maintain a set of key frames that cover the observed surface with a small overlap between adjacent frames, as described in Sec. \ref{sec:key_frame_selection}. Then, from the key frames and the latest frame, we generate a dataset containing different types of samples, discussed in Sec.~\ref{sec:dataset_generation}, and use it to train our model with loss functions proposed in Sec. \ref{sec:loss_functions} to speed up the network convergence. Our method is overviewed in Fig~\ref{fig:method_overview} with details presented in the subsections.
\vspace{-4mm}
\subsection{SDF Prior via Gradient-Augmented Octree Interpolation}
\label{sec:sdf_prior}
\subsubsection{Semi-Sparse Octree}
The SDF prior for position $\bfx$ is obtained by interpolation in a semi-sparse octree data structure with $N$ layers. We refer to an octree layer as \emph{dense} when all octants are created as a regular grid; as \emph{semi-sparse} when child octants containing surface points and all of their siblings (regardless of occupancy) are created simultaneously; and as \emph{sparse} when only child octants containing surface points are created.
We use a semi-sparse octree of resolution $r$, where the first $M$ layers are semi-sparse and the remaining $N-M$ layers are sparse. This is illustrated in Fig.~\hyperref[fig:method_overview]{2c}. In each vertex $\bfx_k$ of an octant with $k \in \{1,\ldots,8\}$, we store estimates $d_k \in \bbR$ and $\bfg_k\in\bbR^3$ of the SDF $d(\bfx_k)$ and its gradient $\nabla d(\bfx_k)$, respectively, which are learnable during training. To maintain memory efficiency, a vertex is shared across neighboring octants from different tree depths. For example, the eight vertices of an octant are also included in the vertices of its eight child octants. This semi-sparse structure is essential to obtain a good SDF prior, especially for query positions away from the surface. The on-demand initialization of all child octants in the first $M$ layers costs extra memory but improves the accuracy significantly.
\input{tex/fig3}
% without gradient augmentation
Fig. \ref{fig:comp_octree_structure} shows a 2D example of an SDF prior using trilinear interpolation in a sparse and a semi-sparse octree. In a sparse octree, the SDF interpolation has more discontinuities on the octant boundaries compared to the result in a semi-sparse octree. Given a query point $\bfx$, the semi-sparse octree provides the smallest octant containing $\bfx$ that is not larger than the smallest octant found in the sparse octree. This guarantees that we can find vertices closer to $\bfx$ for computing the SDF prior because of the creation of sibling octants, which leads to a significantly smaller SDF interpolation error as indicated by Fig.~\ref{fig:comp_octree_structure_c} and Fig.~\ref{fig:comp_octree_structure_d}.
For any query position where the surface exists in the neighborhood, we can locate an octant no larger than $r\times2^{N-M}$. For queries distant to the surface, an empty large octant is sufficient for computing an accurate SDF prior using gradient-augmented interpolation, which is discussed next.
\subsubsection{Gradient-Augmented Interpolation}
\label{sec:gradient_augmented_interpolation}
\input{tex/fig4}
To achieve smaller SDF errors of the prior so that the subsequent neural network can focus on restoring the geometric details, we propose a new gradient-augmented trilinear interpolation method. Given the smallest octant that contains a query position $\bfx$, we first obtain an extrapolation result from each vertex $\bfx_k$:
\begin{equation}
d_k(\bfx) = d_k + \bfg_k^\top (\bfx - \bfx_k),\ k\in\{1,\dots,8\}.
\end{equation}
Given the extrapolation results, we compute the gradient-augmented (ga) interpolation:
\begin{equation} \label{eq:sdf_prior}
d_{ga}(\bfx) = \frac{1}{\gamma} \sum_{k=1}^8 w_k d_k(\bfx),\ \gamma=\sum_{k=1}^8 w_k,
\end{equation}
where $w_k = 1/|\diag{(\bfx_i - \bfx_{k})}|$ is the interpolation weight. In contrast, the regular trilinear (tl) interpolation is:
%
\begin{equation} \label{eq:tl_interpolation}
d_{tl}(\bfx) = \frac{1}{\gamma} \sum_{k=1}^8 w_k d_k,\ \gamma=\sum_{k=1}^8 w_k.
\end{equation}
%
Empirically, gradient-augmented interpolation generates more accurate SDF priors. Fig. \ref{fig:comp_interpolation} shows two 2D examples. Each row shows the ground truth SDF, interpolation results of using w/ and w/o gradient augmentation, the corresponding errors, and the Hessian spectral norm of SDF. As shown in Fig. \ref{fig:comp_interpolation_d} and \ref{fig:comp_interpolation_e}, gradient-augmented interpolation has smaller errors, especially when more obstacles are in the scene.
The gradient-augmented interpolation requires extra memory and computation for the gradient $\bfg_k$ and the extrapolation, respectively. However, theoretically, interpolation with gradient augmentation causes a smaller error upper bound.
\begin{proposition}
Consider an octant $\calV \subset \bbR^3$ of size $L$. Assume that the SDF $d(\bfx)$ is twice differentiable and the spectral norm of its Hessian is bounded:
%
\begin{equation}\label{eq:bounded_hessian}
M := \sup_{\bfx \in \calV} \| \nabla^2 d(\bfx) \|_2 < \infty.
\end{equation}
%
Assume that each vertex $\bfx_k$ has ground-truth SDF value $d_k=d(\bfx_k)$ and gradient $\bfg_k=\nabla d(\bfx_k)$. Then, given arbitrary $\bfx \in \calV$, the errors of gradient-augmented interpolation in \eqref{eq:sdf_prior} and trilinear interpolation in \eqref{eq:tl_interpolation} satisfy:
%
\begin{equation}
\begin{aligned}
e_{ga}(\bfx) &= |d_{ga}(\bfx)-d(\bfx)| \leq \bar{e}_{ga} = \frac{3ML^2}{8},\\
e_{tl}(\bfx) &= |d_{tl}(\bfx)-d(\bfx)| \leq \bar{e}_{tl} = \frac{\sqrt{3}L}{2}.
\end{aligned}
\end{equation}
%
%The error between the ground truth and the SDF prior in \eqref{eq:sdf_prior} is defined as $e(\bfx)=|\bar{d}(\bfx)-d(\bfx)|$. So, the upper bound $\bar{e}_1$ of $e(\bfx)$ using gradient-augmented interpolation is $ML^2/8$. The upper bound $\bar{e}_2$ of $e(\bfx)$ using vanilla trilinear interpolation is $L\sqrt{3}/2$.
\end{proposition}
\begin{proof}
For each octant vertex $\bfx_k$, by Taylor's theorem:
$d(\bfx) = d_k + \bfg_k^\top (\bfx - \bfx_k) + \frac{1}{2}(\bfx-\bfx_k)^\top \nabla^2 d(\bfxi_k) (\bfx - \bfx_k)$,
for some $\bfxi_k$ on the line segment joining $\bfx$ and $\bfx_k$. Using \eqref{eq:sdf_prior} and \eqref{eq:bounded_hessian}, the gradient-augmented interpolation error satisfies:
% \begin{equation}
% \begin{aligned}
% e_{ga}(\bfx) &= \frac{1}{2\gamma} \biggl| \sum_{k=1}^8 w_k (\bfx-\bfx_k)^\top \nabla^2 d(\bfxi_k) (\bfx - \bfx_k) \biggr| \\
% & \leq \frac{M}{2\gamma} \sum_{k=1}^8 w_k \|\bfx-\bfx_k\|_2^2 \le \frac{3ML^2}{8} = \bar{e}_{ga},
% \end{aligned}
% \end{equation}
\begin{equation*}
e_{ga}(\bfx) = \frac{1}{2\gamma} \biggl| \sum_{k=1}^8 w_k (\bfx-\bfx_k)^\top \nabla^2 d(\bfxi_k) (\bfx - \bfx_k) \biggr|
\end{equation*}
\begin{equation}
\leq \frac{M}{2\gamma} \sum_{k=1}^8 w_k \|\bfx-\bfx_k\|_2^2 \le \frac{3ML^2}{8} = \bar{e}_{ga},
\end{equation}
%
where equality holds when $\bfx$ is the octant center so that $\frac{1}{\gamma}\sum_{k=1}^8 w_k \|\bfx-\bfx_k\|_2^2=3L^2/4$.
Similarly, for the error of the regular trilinear interpolation, we have by Taylor's theorem:
%
\begin{equation}
d(\bfx) = d_k + \nabla d(\bfzeta_k)^\top (\bfx-\bfx_k)
\end{equation}
%
for some $\bfzeta_k$ on the line segment joining $\bfx$ and $\bfx_k$. Then, since $\|\nabla d(\bfzeta_k)\|=1$ and using \eqref{eq:tl_interpolation}, the trilinear interpolation error satisfies:
%
\begin{align}
e_{tl}(\bfx) &= \biggl|\frac{1}{\gamma}\sum_{k=1}^K w_k \nabla d(\bfxi_k)^\top (\bfx-\bfx_k)\biggr| \\
&\leq \frac{1}{\gamma}\sum_{k=1}^K w_k \|\bfx - \bfx_k\|_2 \le \frac{\sqrt{3}L}{2} = \bar{e}_{tl}. \notag \qedhere
\end{align}
\end{proof}
% With gradient-augmented interpolation, the SDF prior $\bar{d}_1(\bfx)=\frac{1}{\gamma}\sum_{k=1}^8 w_k (d_k + \bfg_k^\top (\bfx - \bfx_k))$.
% So, the error of the gradient-augmented interpolation is:
% \begin{equation}
% e(\bfx) = \frac{1}{2\gamma} \left| \sum_{k=1}^8 w_k (\bfx-\bfx_k)^\top \nabla^2 d(\bfxi_k) (\bfx - \bfx_k) \right|,
% \end{equation}
% which leads to the following upper bound:
% \begin{equation}
% e(\bfx) \le \frac{M}{2\gamma} \sum_{k=1}^8 w_k \|\bfx-\bfx_k\|_2^2 \le \frac{ML^2}{8} = \bar{e}_1,
% \end{equation}
% where the equality holds when $\bfx$ is the octant center so that $\frac{1}{\gamma}\sum_{k=1}^8 w_k \|\bfx-\bfx_k\|_2^2=L^2/4$. Therefore, the error of gradient-augmented interpolation is bounded.
% For interpolation without gradient augmentation, the SDF prior $\bar{d}_2(\bfx)=\frac{1}{\gamma}\sum_{k=1}^8 w_k d_k$.
% Similarly, we have:
% \begin{align*}
% d(\bfx) &= d_k + \nabla d(\bfxi_k)^\top (\bfx-\bfx_k),\quad \|\nabla d(\bfxi_k)\|=1, \\
% e'(\bfx) &= \left|\frac{1}{\gamma}\sum_{k=1}^K w_k \nabla d(\bfxi_k)^\top (\bfx-\bfx_k)\right| \\
% &\le \frac{1}{\gamma}\sum_{k=1}^K w_k \|\bfx - \bfx_k\|_2 \le \frac{L\sqrt{3}}{2} = \bar{e}_2.
% \end{align*}
%\renewcommand{\QED}{\QEDClosed}
When an octant does not contain positions where the gradient is not well defined (e.g., the medial axes where the closest point projection is not unique), \eqref{eq:bounded_hessian} holds. For positions without well-defined gradients, although the Hessian norm blows up mathematically, gradient-augmented interpolation has $e_{ga}(\bfx)$ significantly lower than $\bar{e}_{ga}$ based on empirical observation. The second row of Fig. \ref{fig:comp_interpolation_d} and \ref{fig:comp_interpolation_f} shows an example of such cases, that the Hessian spectral norm is large on the medial axes, but gradient-augmented interpolation has smaller errors. Since we are looking for an upper bound on the error, we ignore such cases.
As shown in Fig. \ref{fig:comp_interpolation}, the gradient-augmented interpolation has smaller errors than without gradient augmentation.
Empirically, as shown in Fig. \ref{fig:comp_interpolation_f}, $M\ll 1$ so that $\bar{e}_{ga} / \bar{e}_{tl} = {\sqrt{3}ML}/{4} < 1$.
Especially, when the octant is surrounded by multiple obstacles, the SDF prior values stored at the vertices are smaller than the ground truth SDF values inside the octant. This makes SDF priors obtained from interpolation without gradient augmentation no larger than the vertex SDF values, leading to significantly larger errors.
Hence, the prior network $T(\bfx;\theta)$ of our method is a semi-sparse octree where each vertex has an estimate of SDF and gradient, i.e., $\theta=\{d_k, \bfg_k\}_{k=1}^K$, which are learnable parameters optimized together with the residual network. In the experiments, we maintain a semi-sparse octree for each scene with $N=9$, $M=5$ and $r=10$ cm.
\subsection{SDF Residual via Neural Feature Decoding}
\label{sec:sdf_residual}
The accuracy of the SDF prior is limited to the octree resolution, causing lack of geometric details. To achieve high fidelity, we propose to learn a residual correction to the SDF values via a neural network $R(\bfx;\beta)$, which consists of a multi-resolution hash grid encoder \cite{instant-ngp} and an MLP decoder.
As shown in Fig.~\hyperref[fig:method_overview]{2d}, for each query point $\bfx$, the multi-resolution neural hash grid \cite{instant-ngp} encodes the point $\bfx$ at $l$ levels, where each level produces an $F$-dimensional feature by interpolation. The $l$ features from all levels are concatenated $\bff = E(\bfx;\beta_E) \in \bbR^{lF}$ and used as the input to an MLP, which predicts the SDF residual $\delta_d(\bfx) = D(\bff;\beta_D)$. In the experiments, we have $l=4$, $F=2$ and the MLP has five 64-dim hidden layers with LeakyReLU activation.
\subsection{Key Frame Selection}
\label{sec:key_frame_selection}
To learn SDF in real time, it is important to keep a compact and representative set of sensor frames for training. We adopt the key-frame selection strategy of $H_2$-Mapping \cite{jiang_h2-mapping_2023}. As shown in Fig.~\hyperref[fig:method_overview]{2a}, we insert a new sensor frame when the newly observed area compared with the last key frame is large enough, i.e., $\frac{|V_c \cap V_l|}{|V_c \cup V_l|} > c_{\min}$, where $V_c$ is the set of surface octants observed by the current frame, $V_l$ is the set of surface octants observed by the last inserted key frame, and $c_{\min} \in [0, 1]$ is a threshold. This strategy makes sure that the frames cover the observed surface with little overlap between adjacent key frames.
Over time, the number of key frames grows. It is essential to select only $W$ key frames to maintain real-time operation. We incrementally select the frame that observes the most octants, mask out these octants, and repeat until $W$ frames are collected. If all octants are masked out, we reset the mask except for the octants masked out by the last selected key frame and continue the selection. This strategy ensures that the selected key frames maximally cover the scene.
\subsection{Dataset Generation}
\label{sec:dataset_generation}
During online training, it is important to generate a high-quality dataset consisting of a small number of representative samples.
At time step $t$, suppose the set of selected key frame time steps is $\calT=\{k, 1\le k \le t\}, |\calT|\le W$.
For each frame $\calP_{i \in \calT \cup \{t\}}$, we randomly choose $\lfloor N / |\calT \cup \{t\}| \rfloor$ rays $\{\bfo_j=\bfo_i, \bfq_j \in \calP_i\}_{j=1}^N$ to generate samples. As shown in Fig.~\hyperref[fig:method_overview]{2b}, we generate three types of points for training:
\subsubsection{Free-space Points}
To learn the SDF in free space, we sample free-space points $\calP_F$ by drawing $n_F$ points $\{\bfx_n\}_{n=1}^{n_F}$ along each ray $j$: $\bfx_n = \bfo_j + \lambda (\bfq_j - \bfo_j)$, where $\lambda$ is drawn from the uniform distribution $\calU(\delta, 1-\delta)$ with margin $\delta > 0$;
\subsubsection{Surface Samples and Perturbed Points}
To provide supervision for the surface reconstruction, we generate $\calP_S$ by collecting the surface point $\bfq_j$ of each ray $j$ and the perturbed points $\calP_P$ by sampling $n_P$ points $\{\bfx_n\}_{n=1}^{n_P}$ along each ray $j$: $\bfx_n=\bfo_j + \alpha' (\bfq_j - \bfo_j)$, where $\alpha \sim \calN(1, \sigma^2), \alpha' = \min(\max(\alpha, 1-2\sigma), 1+2\sigma)$ with $\sigma > 0$;
\subsubsection{Ground Truth SDF Computation}
For surface points $\calP_S$, we have ground truth SDF $d(\bfx)=0, \bfx \in \calP_S$. For perturbed points and free-space points, we approximate the ground truth as $\tilde{d}(\bfx)=\min_{\bfy\in\calP_S}\|\bfx-\bfy\|_2$.
In our experiments, we have $W=8$, $N=20480$, $\delta=0.05$, $\sigma=0.06$, $n_F=1$, and $n_P=2$.
\subsection{Loss Functions}
\label{sec:loss_functions}
As shown in Fig.~\hyperref[fig:method_overview]{2e}, the SDF prior $d_{ga}(\bfx)=T(\bfx;\theta)$ and the neural residual $\delta_d(\bfx)=R(\bfx;\beta)$ are combined together to obtain a final SDF prediction:
%
\begin{equation}
\hat{d}(\bfx) = d_{ga}(\bfx) + \delta_d(\bfx) = T(\bfx;\theta) + R(\bfx;\beta).
\end{equation}
%
It is important to design appropriate loss functions to train the octree and neural network parameters $\theta$, $\beta$.
\subsubsection{Reconstruction Loss}
We apply an L1 loss over the surface points $\calP_S$ and the perturbation points $\calP_P$ to capture the surface geometry, which is critical for accurate 3D reconstruction:
\begin{equation}
\calL_{\text{recon}} = \frac{w_\text{recon}^S}{|\calP_S|}\sum_{\bfx\in\calP_S}\left|\hat{d}(\bfx)\right| + \frac{w_\text{recon}^P}{|\calP_P|}\sum_{\bfx\in\calP_P}\left|\hat{d}(\bfx) - \tilde{d}(\bfx)\right|, \label{eq:loss_recon}
\end{equation}
where $w_\text{recon}^S$ and $w_\text{recon}^P$ are the corresponding weights.
\subsubsection{Eikonal Loss}
To enforce the Eikonal property in \eqref{eq:sdf_constraints}, we apply another L1 loss for the gradient norm:
\begin{equation}
\begin{aligned}
\calL_\text{eik} &= \frac{w_\text{eik}^S}{|\calP_S|+|\calP_P|}\sum_{\bfx \in \calP_S\cup\calP_P} \left| \|\hat{\bfg}(\bfx)\|_2 - 1 \right| \\
&+ \frac{w_\text{eik}^{\neg S}}{|\calP_F|} \sum_{\bfx \in \calP_F} \left| \|\hat{\bfg}(\bfx)\|_2 - 1 \right|,
\end{aligned} \label{eq:loss_eik}
\end{equation}
where $w_\text{eik}^S$ is the weight for surface points $\calP_S\cup\calP_P$ and $w_\text{eik}^{\neg S}$ is the weight for non-surface points $\calP_F$. Here, $\hat{\bfg}(\bfx)$ is obtained from numerical differentiation instead of the auto gradient graph because the numerical differentiation involves more positions $\bfx \pm \epsilon \bfe_i$ for each dimension $i$, which helps the network converge and shows better training stability when the SDF gradient is not well defined at certain positions.
\subsubsection{Projection Loss}
Although the Eikonal loss $\calL_\text{eik}$ enforces the gradient magnitude, the supervision for the gradient direction and SDF in the distant space is still missing. Hence, we propose a projection loss for free-space points $\calP_F$ that are collected along rays:
%
\begin{equation}
\calL_\text{proj} = \frac{w_\text{proj}}{|\calP_F|} \sum_{\bfx \in \calP_F} \left| \hat{d}(\bfx) - \tilde{d}(\bfx) \right|.
\end{equation}
%
Although the above loss has a form similar to \eqref{eq:loss_recon}, we call it \textit{projection} loss because $\tilde{d}(\bfx)$ is actually a loose upper bound for the ground truth SDF $d(\bfx)$. The purpose of this loss is not to make the model predict $\tilde{d}(\bfx)$ exactly at $\bfx$ but to provide the implicit supervision of the gradient direction so that it speeds up the convergence of other loss functions.
In our experiments, we set $w_\text{recon}^S = 1000$, $w_\text{recon}^P = 200$, $w_\text{eik}^S = 10$, $w_\text{eik}^P = 3$, and $w_\text{proj} = 100$.
\begin{figure}[t]
\centering
\begin{subfigure}[t]{0.24\linewidth}
\includegraphics[width=\linewidth]{fig/octree_structure/interpolation_of_sparse_octree.png}
\caption{}
\label{fig:comp_octree_structure_a}
\end{subfigure}%
\begin{subfigure}[t]{0.24\linewidth}
\includegraphics[width=\linewidth]{fig/octree_structure/interpolation_of_semi_sparse_octree.png}
\caption{}
\label{fig:comp_octree_structure_b}
\end{subfigure}
\begin{subfigure}[t]{0.24\linewidth}
\includegraphics[width=\linewidth]{fig/octree_structure/interpolation_error_of_sparse_octree.png}
\caption{}
\label{fig:comp_octree_structure_c}
\end{subfigure}%
\begin{subfigure}[t]{0.24\linewidth}
\includegraphics[width=\linewidth]{fig/octree_structure/interpolation_error_of_semi_sparse_octree.png}
\caption{}
\label{fig:comp_octree_structure_d}
\end{subfigure}
\caption{\small 2D visualization of SDF interpolation without gradient augmentation using (a) a sparse octree and (b) a semi-sparse with corresponding interpolation error shown in (c) and (d) respectively. The bottom-left red region is an obstacle containing one vertex.}
\label{fig:comp_octree_structure}
\vspace{-3ex}
\end{figure}
\begin{figure*}
\centering
\begin{subfigure}[t]{0.16\linewidth}
\includegraphics[width=\linewidth]{fig/error_bound/sdf-prior-single-circle-gt.png}
\vspace{-3ex}
% \caption{}
\end{subfigure}%
\hfill%
\begin{subfigure}[t]{0.16\linewidth}
\includegraphics[width=\linewidth]{fig/error_bound/sdf-prior-single-circle.png}
\vspace{-3ex}
% \caption{}
\end{subfigure}%
\hfill%
\begin{subfigure}[t]{0.16\linewidth}
\includegraphics[width=\linewidth]{fig/error_bound/sdf-prior-single-circle-no-gradients.png}
\vspace{-3ex}
% \caption{}
\end{subfigure}%
\hfill%
\begin{subfigure}[t]{0.16\linewidth}
\includegraphics[width=\linewidth]{fig/error_bound/sdf-prior-single-circle-error.png}
\vspace{-3ex}
% \caption{}
\end{subfigure}%
\hfill%
\begin{subfigure}[t]{0.16\linewidth}
\includegraphics[width=\linewidth]{fig/error_bound/sdf-prior-single-circle-no-gradients-error.png}
\vspace{-3ex}
% \caption{}
\end{subfigure}%
\hfill%
\begin{subfigure}[t]{0.16\linewidth}
\includegraphics[width=\linewidth]{fig/error_bound/sdf-prior-single-circle-hessian.png}
\vspace{-3ex}
% \caption{}
\end{subfigure}
\begin{subfigure}[t]{0.16\linewidth}
\includegraphics[width=\linewidth]{fig/error_bound/sdf-prior-four-circles-gt.png}
\vspace{-3ex}
\caption{}
% \caption{\small Ground truth}
\label{fig:comp_interpolation_a}
\end{subfigure}%
\hfill%
\begin{subfigure}[t]{0.16\linewidth}
\includegraphics[width=\linewidth]{fig/error_bound/sdf-prior-four-circles.png}
\vspace{-3ex}
\caption{}
% \caption{\small w/ Gradient}
\label{fig:comp_interpolation_b}
\end{subfigure}%
\hfill%
\begin{subfigure}[t]{0.16\linewidth}
\includegraphics[width=\linewidth]{fig/error_bound/sdf-prior-four-circles-no-gradients.png}
\vspace{-3ex}
\caption{}
% \caption{\small w/o Gradient}
\label{fig:comp_interpolation_c}
\end{subfigure}%
\hfill%
\begin{subfigure}[t]{0.16\linewidth}
\includegraphics[width=\linewidth]{fig/error_bound/sdf-prior-four-circles-error.png}
\vspace{-3ex}
\caption{}
% \caption{\small Error w/ Gradient}
\label{fig:comp_interpolation_d}
\end{subfigure}%
\hfill%
\begin{subfigure}[t]{0.16\linewidth}
\includegraphics[width=\linewidth]{fig/error_bound/sdf-prior-four-circles-no-gradients-error.png}
\vspace{-3ex}
\caption{}
% \caption{\small Error w/o Gradient}
\label{fig:comp_interpolation_e}
\end{subfigure}%
\hfill%
\begin{subfigure}[t]{0.16\linewidth}
\includegraphics[width=\linewidth]{fig/error_bound/sdf-prior-four-circles-hessian.png}
\vspace{-3ex}
\caption{}
% \caption{\small Hessian Norm(log)}
\label{fig:comp_interpolation_f}
\end{subfigure}
\caption{\small 2D visualization of interpolation with and without gradient augmentation for one (red region, top row) and four obstacles (red regions, bottom row). Gradient-augmented interpolation produces a better SDF prior (b) with smaller error (d). Empirically, positions where the SDF gradient is not well defined (large Hessian spectral norm), as shown in (f), have small interpolation error with gradient augmentation as shown in (d).}
\label{fig:comp_interpolation}
\vspace{-3ex}
\end{figure*}
\section{Evaluation}
\label{sec:evaluation}
In this section, we compare \methodname{} with four baselines: Voxblox \cite{oleynikova_voxblox_2017}, \htwomapping \cite{jiang_h2-mapping_2023}, PIN-SLAM \cite{pan_pin-slam_2024}, and HIO-SDF \cite{hio-sdf_2024}. We first examine the mesh reconstruction and SDF visualizations as a qualitative comparison, then quantitatively evaluate the methods using different metrics. In addition, we perform an ablation study to evaluate the contribution of each component in our method.
We use the Replica dataset \cite{replica19arxiv},
which provides eight scenes with one trajectory per scene and 2000 frames per trajectory. To ensure full coverage of each scene, we augmented each trajectory with additional $40$ camera views.
\vspace{-1mm}
\subsection{Qualitative Results}
% compare with baselines
% 1. mesh
\subsubsection{Mesh Reconstruction}
\input{tex/fig5}
We first compare the reconstructed meshes. Fig. \ref{fig:qualitative} shows results on the Replica room 0 scene. \htwomapping, PIN-SLAM, and \methodname{} generate complete and high-quality meshes. \htwomapping\ tends to produce smoother surfaces as it only allocates octree voxels near the surface.
%, putting all efforts into learning the surface.
The completeness of our reconstructions is better than \htwomapping. Compared with PIN-SLAM \cite{pan_pin-slam_2024}, which only predicts SDF values in regions close to the surface, our meshes exhibit smoother geometry with less noise. Compared to HIO-SDF \cite{hio-sdf_2024}, which also estimates continuous and differentiable SDFs, our reconstructions demonstrate substantially higher fidelity.
% 2. sdf slice
\subsubsection{SDF Reconstruction}
We visualize z-plane slices of the SDF predictions in Fig. \ref{fig:qualitative}. \htwomapping\ and PIN-SLAM estimate truncated SDF only. Although HIO-SDF can predict SDF values over the entire space, it struggles to precisely encode the surface as a zero-level set, which is crucial for robotic tasks where accurate perception of obstacle boundaries is required. In contrast, \methodname{} faithfully reconstructs the surface position and provides reliable SDF estimates in free space. The predictions of \methodname{} outside the scene boundaries are less accurate due to the lack of sensor observations. But this has little impact on applications where robots operate within the observed workspace.
% to provide an intuitive understanding of SDF accuracy
\subsection{Quantitative Results}
We compute two sets of metrics: mesh metrics to evaluate the surface reconstruction quality and SDF metrics to evaluate the overall SDF predictions.
\subsubsection{Mesh Metrics}
We uniformly sample two point clouds, $\calP_\text{g.t.}$ and $\calP_\text{recon}$, of $200$k points each from the ground-truth mesh and from the reconstructed mesh, and report \emph{Chamfer distance}, \emph{F1 score} ($<5 cm$), \emph{precision}, \emph{recall}, \emph{completion}, \emph{completion ratio} ($<5 cm$), and \emph{accuracy}\cite{jiang_h2-mapping_2023,pan_pin-slam_2024}.
% We uniformly sample two point clouds, $\calP_\text{g.t.}$ and $\calP_\text{recon}$, of $200$k points each from the ground-truth mesh and from the reconstructed mesh, and report
% \emph{completion} $d_{\text{recon} \rightarrow \text{g.t.}}$, \emph{completion ratio} ($<5 cm$), \emph{accuracy} $d_{\text{recon} \rightarrow \text{g.t.}}$, and
% \emph{Chamfer distance} (CD)
% \begin{align}
% h(\bfx, \calP) &= \min_{\bfy \in \calP} \|\bfx - \bfy\|_2, \\
% d_{\text{g.t.} \rightarrow \text{recon}} &= \frac{1}{|\calP_\text{g.t.}|} \sum_{\bfx \in \calP_\text{g.t.}} h(\bfx, \calP_\text{recon}), \\
% d_{\text{recon} \rightarrow \text{g.t.}} &= \frac{1}{|\calP_\text{recon}|} \sum_{\bfx \in \calP_\text{recon}} h(\bfx, \calP_\text{g.t.}), \\
% \operatorname{CD(\calP_\text{recon}}, \calP_\text{g.t.}) &= (d_{\text{g.t.} \rightarrow \text{recon}} + d_{\text{recon} \rightarrow \text{g.t.}}) / 2.
% %\\
% %\operatorname{TP}(\calP_\text{recon}, \calP_\text{g.t.}) &= \sum_{\bfx\in\calP_\text{recon}} \mathbbm{1}\left(h(\bfx,\calP_\text{g.t.}) \le \tau \right), \\
% %\operatorname{FP}(\calP_\text{recon}, \calP_\text{g.t.}) &= \sum_{\bfx\in\calP_\text{recon}} \mathbbm{1}\left(h(\bfx,\calP_\text{g.t.}) > \tau \right), \\
% %\operatorname{FN}(\calP_\text{recon}, \calP_\text{g.t.}) &= \sum_{\bfx\in\calP_\text{g.t.}} \mathbbm{1}\left(h(\bfx,\calP_\text{recon}) > \tau \right), \\
% %\operatorname{Precision}(\calP_\text{recon}, \calP_\text{g.t.}) &= \operatorname{TP} / (\operatorname{TP} + \operatorname{FP}), \\
% %\operatorname{Recall}(\calP_\text{recon}, \calP_\text{g.t.}) &= \operatorname{TP} / (\operatorname{TP} + \operatorname{FN}), \\
% %\operatorname{F1}(\calP_\text{recon}, \calP_\text{g.t.}) &= \frac{2 * \operatorname{Precision} \times \operatorname{Recall}}{\operatorname{Precision} + \operatorname{Recall}},
% \end{align}
% We also report \emph{F1 score} ($<5 cm$), \emph{precision}, and \emph{recall}\NA{provide a reference}. Due to space limitations, we omit their definitions.
%Since \htwomapping and PIN-SLAM predict SDF values only near the surface, their mesh related metrics are generally higher; our results are slightly worse than \htwomapping \ but comparable to PIN-SLAM. In contrast, when compared to HIO-SDF \cite{hio-sdf_2024}, which also predicts a continuous and differentiable SDF over the entire scene, our method achieves substantially better performance.
\input{tex/table1}
As shown in Table \ref{table:mesh metrics}, \methodname{} outperforms the baselines in recall, completion, and completion ratio. Our method is mostly the second best in the other mesh metrics. Since \htwomapping\ and PIN-SLAM are specially optimized for surface reconstruction, they perform slightly better in metrics like F1 score. However, their mesh has more holes, which can also improve metrics like precision. Voxblox has the best accuracy but performs the worst in other metrics. Since HIO-SDF relies on a volumetric method like Voxblox to generate the SDF dataset, it also performs worse than \methodname{}.
% 2. sdf metrics
\subsubsection{SDF Metrics}
We evaluate the SDF predictions of all methods using a regular grid of resolution $1.25$ cm. For each scene, the grid boundary is the bounding box of the ground-truth mesh with $15$ cm padding. The ground-truth SDF $d$ of each grid center is computed from the ground-truth mesh. Only points with $d\geq-0.1$ m are kept for evaluation.
In Table \ref{table:SDF metrics}, we report the \emph{mean absolute error} (MAE) of SDF, the \emph{angular MAE} of the SDF gradient, and the SDF \emph{valid ratio}, defined as the proportion of test positions where a method can predict SDF.
To examine the prediction quality in different regions, we categorize the grid points with $-0.1 \leq d \leq 0.2$ m as near surface, and the other points as far from the surface. \methodname{} marginally performs better than the baselines in all SDF metrics except for near-surface angular MAE of the SDF gradient, where our method is the second best. HIO-SDF fails to train the network stably when its volumetric method does not provide good results. Since \htwomapping{} and PIN-SLAM are able to predict SDF only near the surface, their SDF valid ratios are extremely low, while HIO-SDF and \methodname{} both cover the whole scene.
\subsubsection{Runtime Metrics}
We also measure the timing of each method. As shown in Table \ref{table:comp_runtime}, \methodname{} runs at 8.51 fps, which is the second fastest.
\input{tex/table2}
\input{tex/table3}
\subsection{Ablation Study}
To investigate the contribution of the semi-sparse octree and gradient-augmented interpolation, we train three variants, without the neural residual network, using a regular sparse octree and interpolation without gradient augmentation. As shown in Fig. \ref{fig:comp_mesh_with_prior_only}, the SDF prior of our method is smoother and the neural network residual helps recover the geometric details. The neural network residual does not improve the mesh metrics but improves the SDF metrics, as shown in Table \ref{table:ablation_study}. When trained with a sparse octree instead, our method performs worse due to more discontinuities caused by the sparsity. Without gradient augmentation, the SDF priors become worse, leading to worse performance. We also train our model without the projection loss, which shows significantly worse metrics because the projection loss provides important guidance about the SDF scale and gradient direction.
\input{tex/table4}
\input{tex/fig6}
\begin{figure*}[t]
\begin{center}
\begin{subfigure}[t]{0.16\linewidth}
\includegraphics[width=\linewidth]{fig/mesh_vis/room0/gt.png}
% \caption{\footnotesize Ground Truth}
\end{subfigure}
\begin{subfigure}[t]{0.16\linewidth}
\includegraphics[width=\linewidth]{fig/mesh_vis/room0/our.png}
% \caption{\footnotesize Ours}
\end{subfigure}
\begin{subfigure}[t]{0.16\linewidth}
\includegraphics[width=\linewidth]{fig/mesh_vis/room0/h2mapping.png}
% \caption{\footnotesize \htwomapping}
\end{subfigure}
\begin{subfigure}[t]{0.16\linewidth}
\includegraphics[width=\linewidth]{fig/mesh_vis/room0/pin-slam.png}
% \caption{\footnotesize PIN-SLAM}
\end{subfigure}
\begin{subfigure}[t]{0.16\linewidth}
\includegraphics[width=\linewidth]{fig/mesh_vis/room0/hio.png}
% \caption{\footnotesize HIO-SDF}
\end{subfigure}
\begin{subfigure}[t]{0.16\linewidth}
\includegraphics[width=\linewidth]{fig/mesh_vis/room0/voxblox.png}
% \caption{\footnotesize Voxblox}
\end{subfigure}
%
\begin{subfigure}[t]{0.16\linewidth}
\includegraphics[width=\linewidth]{fig/sdf_slice/gt-sdf-slice-room0.png}
\caption{\footnotesize Ground Truth}
\end{subfigure}
\begin{subfigure}[t]{0.16\linewidth}
\includegraphics[width=\linewidth]{fig/sdf_slice/ego-sdf-slice-room0.png}
\caption{\footnotesize Ours}
\end{subfigure}
\begin{subfigure}[t]{0.16\linewidth}
\includegraphics[width=\linewidth]{fig/sdf_slice/h2mapping-sdf-slice-room0.png}
\caption{\footnotesize \htwomapping \cite{jiang_h2-mapping_2023}}
\end{subfigure}
\begin{subfigure}[t]{0.16\linewidth}
\includegraphics[width=\linewidth]{fig/sdf_slice/pinslam-sdf-slice-room0.png}
\caption{\footnotesize PIN-SLAM \cite{pan_pin-slam_2024}}
\end{subfigure}
\begin{subfigure}[t]{0.16\linewidth}
\includegraphics[width=\linewidth]{fig/sdf_slice/hiosdf-sdf-slice-room0.png}
\caption{\footnotesize HIO-SDF \cite{hio-sdf_2024}}
\end{subfigure}
\begin{subfigure}[t]{0.16\linewidth}
\includegraphics[width=\linewidth]{fig/sdf_slice/voxblox-sdf-slice-room0.png}
\caption{\footnotesize Voxblox \cite{oleynikova_voxblox_2017}}
\end{subfigure}
\end{center}
\vspace{-2mm}
\caption{\small Qualitative comparison of mesh reconstruction (top row) and z-plane slice of SDF reconstruction (bottom row) on Replica room 0 \cite{replica19arxiv}. \methodname{} reconstructs a mesh with the highest completion ratio and accurate SDF both near and far from the surface. \htwomapping{} and PIN-SLAM only learn truncated SDF. HIO-SDF learns an over smooth result. Voxblox significantly under-estimates the SDF.}
\label{fig:qualitative}
\vspace{-3mm}
\end{figure*}
\begin{table*}[htbp]
\centering
\caption{\small Mesh reconstruction metrics on the Replica dataset \cite{replica19arxiv}. The best and second best results are bold and underlined, respectively.}
\label{table:mesh metrics}
\scriptsize
% \resizebox{\textwidth}{!}{
\begin{tabular}{l|l|cccccccc}
\hline
Metric & Method & room 0 & room 1 & room 2 & office 0 & office 1 & office 2 & office 3 & office 4 \\
\hline
\multirow{5}{*}{Chamfer Distance [cm] $\downarrow$}
& \methodname{} & 2.42 & 2.44 & 1.95 & 1.99 & 3.27 & 2.47 & 3.67 & 2.83 \\
& \htwomapping & \underline{2.29} & \textbf{1.86} & \textbf{1.73} & 1.83 & \textbf{1.49} & \textbf{2.24} & \underline{2.39} & \underline{2.46} \\
& PIN-SLAM & 2.56 & 2.13 & 2.19 & \textbf{1.70} & {1.99} & 2.57 & {2.60} & {2.73} \\
& HIO-SDF & 3.79 & 3.24 & 3.14 & 2.93 & 3.33 & 3.79 & 3.90 & 3.60 \\
& Voxblox & \textbf{2.29} & \underline{1.92} & \underline{1.92} & \underline{1.75} & \underline{1.93} & \underline{2.42} & \textbf{2.39} & \textbf{2.42} \\
\hline
\multirow{5}{*}{F1 Score [$<$5cm]\% $\uparrow$}
& \methodname{} & 92.26 & 91.99 & 93.34 & 93.99 & 87.96 & 90.86 & 83.03 & 89.36 \\
& \htwomapping & \textbf{95.38} & \textbf{95.98} & \textbf{96.35} & \textbf{97.27} & \textbf{95.92} & \textbf{94.70} & \textbf{94.08} & \textbf{94.05} \\
& PIN-SLAM & {93.00} & \underline{94.57} & \underline{94.40} & \underline{95.57} & \underline{94.13} & \underline{92.93} & \underline{92.13} & \underline{92.81} \\
& HIO-SDF & 82.83 & 86.45 & 87.96 & 88.41 & 84.85 & 82.51 & 84.20 & 84.82 \\
& Voxblox & \underline{93.01} & 93.79 & 92.6 & 93.21 & 92.03 & 90.71 & 90.6 & 91.11\\
\hline
\multirow{5}{*}{Precision [$<$5cm]\% $\uparrow$}
& \methodname{} & 90.92 & 89.78 & 91.56 & 91.56 & 82.65 & 89.81 & 77.03 & 88.09 \\
& \htwomapping & \textbf{99.57} & \textbf{99.78} & \textbf{99.59} & \textbf{99.65} & \textbf{99.44} & \textbf{99.66} & \textbf{99.08} & \textbf{99.52} \\
& PIN-SLAM & \underline{98.57} & 98.39 & \underline{98.59} & \underline{97.95} & \underline{98.40} & \underline{98.06} & \underline{96.83} & \underline{98.39} \\
& HIO-SDF & 85.86 & 89.04 & 90.54 & 91.24 & 88.55 & 84.83 & 88.24 & 88.15 \\
& Voxblox & 98.18 & \underline{98.61} & 95.88 & 96.66 & 98.28 & 97.04 & 96.41 & 97.52\\
\hline
\multirow{5}{*}{Recall [$<$5cm]\% $\uparrow$}
& \methodname{} & \textbf{93.63} & \textbf{94.30} & \textbf{95.18} & \textbf{96.56} & \textbf{93.99} & \textbf{91.93} & \textbf{90.99} & \textbf{90.68} \\
& \htwomapping & \underline{91.53} & \underline{92.46} & \underline{93.32} & \underline{95.00} & \underline{92.65} & \underline{90.21} & \underline{89.56} & \underline{89.14} \\
& PIN-SLAM & 89.83 & 91.03 & 90.55 & 93.29 & 90.22 & 88.31 & 87.87 & 87.82 \\
& HIO-SDF & 79.93 & 84.00 & 85.53 & 85.75 & 81.44 & 80.31 & 80.52 & 81.74 \\
& Voxblox & 88.36 & 89.42 & 89.54 & 89.99 & 86.53 & 85.16 & 85.46 & 85.5 \\
\hline
\multirow{5}{*}{Completion [cm] $\downarrow$}
& \methodname{} & \textbf{2.27} & \textbf{1.94} & \textbf{1.78} & \textbf{1.56} & \textbf{1.73} & \textbf{2.33} & \textbf{2.51} & \textbf{2.62} \\
& \htwomapping & \underline{3.05} & \underline{2.51} & \underline{2.14} & \underline{1.64} & \underline{1.98} & \underline{3.06} & \underline{3.09} & \underline{3.35} \\
& PIN-SLAM & 3.46 & 2.90 & 2.89 & 1.96 & 2.58 & 3.54 & 3.34 & 3.77 \\
& HIO-SDF & 4.50 & 3.63 & 3.51 & 3.26 & 3.87 & 4.09 & 4.50 & 4.17 \\
& Voxblox & 4.02 & 3.63 & 3.27 & 3.08 & 3.67 & 4.24 & 3.94 & 4.22\\
\hline
\multirow{5}{*}{Completion Ratio [$<$5cm]\% $\uparrow$}
& \methodname{} & \textbf{93.82} & \textbf{94.57} & \textbf{95.36} & \textbf{96.73} & \textbf{94.71} & \textbf{92.12} & \textbf{91.49} & \textbf{90.95} \\
& \htwomapping & \underline{90.79} & \underline{91.87} & \underline{92.87} & \underline{94.75} & \underline{92.11} & \underline{89.19} & \underline{88.45} & \underline{87.88} \\
& PIN-SLAM & 88.84 & 90.30 & 89.71 & 92.96 & 89.34 & 86.72 & 86.64 & 86.36 \\
& HIO-SDF & 78.41 & 83.04 & 84.68 & 84.83 & 79.82 & 79.20 & 78.65 & 80.30 \\
& Voxblox & 88.32 & 89.39 & 89.11 & 89.78 & 86.28 & 84.95 & 85.31 & 85.21\\
\hline
\multirow{5}{*}{Accuracy [cm] $\downarrow$}
& \methodname{} & 2.58 & 2.95 & 2.13 & 2.43 & 4.82 & 2.62 & 4.83 & 3.04 \\
& \htwomapping & \underline{1.54} & \underline{1.21} & \underline{1.33} & \underline{1.22} & \underline{1.01} & \underline{1.43} & \underline{1.69} & \underline{1.58} \\
& PIN-SLAM & {1.66} & {1.37} & {1.49} & {1.45} & {1.31} & 1.61 & {1.87} & {1.70} \\
& HIO-SDF & 3.09 & 2.85 & 2.78 & 2.62 & 2.79 & {1.49} & 3.31 & 3.03 \\
& Voxblox & \textbf{0.97} & \textbf{0.91} & \textbf{1.19} & \textbf{1.16} & \textbf{0.87} & \textbf{1.09} & \textbf{1.22} & \textbf{1.01}\\
\hline
\end{tabular}
% }
\vspace{-2ex}
\end{table*}
\begin{table*}[htbp]
\centering
\caption{\small SDF reconstruction metrics on the Replica dataset \cite{replica19arxiv}.}
\label{table:SDF metrics}
\scriptsize
% \resizebox{\textwidth}{!}{%
\begin{tabular}{ll|c|cccccccc}
\hline
Metric & Region & Method & room 0 & room 1 & room 2 & office 0 & office 1 & office 2 & office 3 & office 4 \\
\hline
\multirow{11}{*}{SDF MAE [cm]$\downarrow$}
& \multirow{3}{*}{All}
& \methodname{} & \textbf{2.13} & \textbf{2.02} & \textbf{2.03} & \textbf{1.46} & \textbf{1.43} & \textbf{2.15} & \textbf{2.35} & \textbf{2.39} \\
& & \textit{Lower by} & -34\% & -28\% & -92\% & -44\% & -53\% & -36\% & -31\% & -29\% \\
&& HIO-SDF & \underline{3.27} & \underline{2.79} & 39.98 & \underline{2.60} & \underline{2.72} & \underline{3.34} & \underline{3.40} & \underline{3.39} \\
&& Voxblox & 21.03 & 17.93 & \underline{24.63} & 18.23 & 14.71 & 19.36 & 19.15 & 21.35 \\
\hhline{|~|-|-|-|-|-|-|-|-|-|-|}
& \multirow{5}{*}{Near}
& \methodname{} & \textbf{1.97} & \textbf{1.64} & \textbf{1.79} & \textbf{1.33} & \textbf{1.68} & \textbf{2.14} & \textbf{2.23} & \textbf{2.49} \\
&& HIO-SDF & \underline{3.45} & \underline{2.90} & 28.32 & \underline{2.57} & \underline{3.00} & \underline{3.36} & \underline{3.52} & \underline{3.62} \\
&& \htwomapping & 6.13 & 6.01 & {5.54} & 5.88 & 5.75 & 5.81 & 5.99 & 6.19 \\
&& PIN-SLAM & 4.65 & 8.10 & 8.06 & 8.06 & 8.15 & 8.11 & 8.13 & 8.07 \\
&& Voxblox & 5.00 & 4.55 & \underline{4.51} & 4.64 & 3.99 & 4.98 & 5.10 & 4.70 \\
\hhline{|~|-|-|-|-|-|-|-|-|-|-|}
& \multirow{3}{*}{Far}
& \methodname{} & \textbf{2.26} & \textbf{2.38} & \textbf{2.24} & \textbf{1.58} & \textbf{1.13} & \textbf{2.16} & \textbf{2.45} & \textbf{2.31} \\
&& HIO-SDF & \underline{3.12} & \underline{2.69} & 50.22 & \underline{2.62 }& \underline{2.39} & \underline{3.33} & \underline{3.30}& \underline{3.20} \\
&& Voxblox & 32.78 & 29.41 & \underline{26.79} & 29.76 & 26.55 & 30.97 & 29.90 & 33.56 \\
\hline
%
\multirow{11}{*}{Grad. MAE [rad]$\downarrow$}
& \multirow{3}{*}{All}
& \methodname{} & \textbf{0.325} & \textbf{0.328} & \textbf{0.395} & \textbf{0.348} & \textbf{0.349} & \textbf{0.362} & \textbf{0.397} & \textbf{0.340} \\
&& HIO-SDF & \underline{0.924} & 1.315 & 1.534 & 1.272 & 1.101 & 1.340 & 1.326 & 1.256 \\
&& Voxblox & 1.049 & \underline{0.973} & \underline{1.422} & \underline{0.989} & \underline{0.901} & \underline{1.029} & \underline{1.059} & \underline{1.047} \\
\hhline{|~|-|-|-|-|-|-|-|-|-|-|}
& \multirow{5}{*}{Near}
& \methodname{} & \underline{0.323} & \underline{0.306} & \underline{0.396} & \underline{0.346} & \underline{0.363} & \underline{0.364} & \underline{0.419} & \underline{0.379} \\
&& \htwomapping & 1.076 & 1.095 & 1.043 & 1.095 & 1.081 & 1.085 & 1.081 & 1.096 \\
&& PIN-SLAM & 0.870 & 1.566 & 1.571 & 1.569 & 1.530 & 1.578 & 1.550 & 1.572 \\
&& HIO-SDF & 0.975 & 1.301 & 1.560 & 1.281 & 1.115 & 1.324 & 1.331 & 1.257 \\
&& Voxblox & \textbf{0.293} & \textbf{0.270} & \textbf{0.269} & \textbf{0.318} & \textbf{0.317} & \textbf{0.358} & \textbf{0.363} & \textbf{0.326} \\
\hhline{|~|-|-|-|-|-|-|-|-|-|-|}
& \multirow{3}{*}{Far}
& \methodname{} & \textbf{0.326} & \textbf{0.348} & \textbf{0.394} & \textbf{0.350} & \textbf{0.333} & \textbf{0.360} & \textbf{0.343} & \textbf{0.311} \\
&& HIO-SDF & \underline{0.884} & \underline{1.328} & 1.512 & \underline{1.262} & \underline{1.084} & \underline{1.356} & \underline{1.325} & \underline{1.255} \\
&& Voxblox & 1.524 & 1.513 & \underline{1.504} & 1.504 & 1.488 & 1.513 & 1.522 & 1.520 \\
\hline
\multicolumn{2}{l|}
{\multirow{2}{*}{SDF Valid Ratio [\%]$\uparrow$}}
& \htwomapping & 16.05 & 16.62 & 18.15 & 17.46 & 20.30 & 16.84 & 17.05 & 15.43 \\
&& PIN-SLAM & 25.01 & 6.47 & 5.82 & 7.86 & 8.63 & 7.09 & 7.19 & 5.67 \\
\hline
\end{tabular}
\vspace{-3ex}
% }
\end{table*}
\begin{table}[t]
\centering
\caption{\small Runtime comparison on Replica room 0 \cite{replica19arxiv}.}
\label{table:comp_runtime}
\footnotesize
\resizebox{\linewidth}{!}{%
\begin{tabular}{l|ccccc}
\hline
& \methodname{} & \htwomapping & PIN-SLAM & HIO-SDF & Voxblox \\
\hline
{FPS}
& \underline{8.51} & \textbf{12.36} & 8.43 & 1.99 & 0.87 \\
\hline
\end{tabular}}
\end{table}
\begin{table}[t]
\centering
\caption{\small Ablation study results on Replica office 0 \cite{replica19arxiv}.}
\label{table:ablation_study}
\scriptsize
% \resizebox{\textwidth}{!}{%
\begin{tabular}{ll|ccccc}
\hline
\multirow{2}{*}{Metric} & & \multirow{2}{*}{\methodname{}} & Prior & Sparse & w/o Grad. & w/o Proj. \\
& & & Only & Octree & Aug. & Loss \\
\hline
\multicolumn{2}{l|}{Chamfer Distance $\downarrow$}& \underline{1.98} & \textbf{1.97} & 2.09 & 2.23 & 7.38\\
\multicolumn{2}{l|}{F1 Score \%$\uparrow$}& \underline{93.99} & \textbf{94.14} & 93.44 & 91.44 & 79.26\\
\multicolumn{2}{l|}{Precision \%$\uparrow$}& \underline{91.56} & \textbf{92.02} & 90.54 & 86.61 & 68.19\\
\multicolumn{2}{l|}{Recall \%$\uparrow$}& \underline{96.56} & {96.36} & {96.53} & \textbf{96.84} & 94.63\\
\multicolumn{2}{l|}{Completion [cm]$\downarrow$}& \textbf{1.56} & \underline{1.59} & 1.62 & 1.60 & 1.74\\
\multicolumn{2}{l|}{Completion Ratio \%$\uparrow$}& {96.73} & 96.52 & \underline{96.75} & \textbf{97.18} & 96.13\\
\multicolumn{2}{l|}{Accuracy [cm]$\downarrow$} & \underline{2.43} & \textbf{2.36} & 2.57 & 2.85 & 13.01\\
\hline
{SDF} & All & \textbf{1.46} & \underline{1.52} & 2.65 & 3.69 & 15.76\\
{MAE} & Near & \textbf{1.33} & \underline{1.35} & 1.49 & 2.01 & 2.06\\
{[cm]$\downarrow$}& Far & \textbf{1.58} & \underline{1.69} & 3.75 & 5.30 & 28.76\\
\hline
%
Grad. & All & \underline{0.348} & \textbf{0.285} & 0.565 & 0.730 & 0.931\\
MAE & Near & \underline{0.346} & \textbf{0.290} & 0.469 & 0.599 & 0.486\\
{[rad]$\downarrow$}& Far & \underline{0.350} & \textbf{0.280} & 0.657 & 0.855 & 1.353\\
\hline
%
\end{tabular}
% }
\vspace{-4mm}
\end{table}
\begin{figure}[t]
\centering
\begin{subfigure}[t]{0.33\linewidth}
\includegraphics[width=\linewidth]{fig/mesh_vis/room2/gt.png}
\caption{\footnotesize Ground Truth}
\end{subfigure}%
\hfill%
\begin{subfigure}[t]{0.33\linewidth}
\includegraphics[width=\linewidth]{fig/mesh_vis/room2/our.png}
\caption{\footnotesize \methodname{}}
\end{subfigure}%
\hfill%
\begin{subfigure}[t]{0.33\linewidth}
\includegraphics[width=\linewidth]{fig/mesh_vis/room2/our-prior.png}
\caption{\footnotesize \methodname{} (prior only)}
\end{subfigure}
\caption{\small Comparison of mesh reconstruction using \methodname{} versus only the octree prior in \methodname{}. The neural network residual helps recover geometric details.}
\label{fig:comp_mesh_with_prior_only}
\vspace{-2mm}
\end{figure}
\section{Conclusion}
\label{sec:conclusion}
This paper developed \methodname{}, an online hybrid method that builds globally accurate SDFs from streaming point cloud data at scene scales. Our method combines an explicit SDF prior from gradient-augmented interpolation in a semi-sparse octree with an implicit residual from a neural network feature decoder. Through extensive experiments, we demonstrate that \methodname{} is more accurate and efficient than state-of-the-art methods. Future work will focus on utilizing \methodname{} in robot localization, navigation, and manipulation.
% Generated by IEEEtran.bst, version: 1.14 (2015/08/26)
\begin{thebibliography}{10}
\providecommand{\url}[1]{#1}
\csname url@samestyle\endcsname
\providecommand{\newblock}{\relax}
\providecommand{\bibinfo}[2]{#2}
\providecommand{\BIBentrySTDinterwordspacing}{\spaceskip=0pt\relax}
\providecommand{\BIBentryALTinterwordstretchfactor}{4}
\providecommand{\BIBentryALTinterwordspacing}{\spaceskip=\fontdimen2\font plus
\BIBentryALTinterwordstretchfactor\fontdimen3\font minus \fontdimen4\font\relax}
\providecommand{\BIBforeignlanguage}[2]{{%
\expandafter\ifx\csname l@#1\endcsname\relax
\typeout{** WARNING: IEEEtran.bst: No hyphenation pattern has been}%
\typeout{** loaded for the language `#1'. Using the pattern for}%
\typeout{** the default language instead.}%
\else
\language=\csname l@#1\endcsname
\fi
#2}}
\providecommand{\BIBdecl}{\relax}
\BIBdecl
\bibitem{ortiz_isdf_2022}
J.~Ortiz, A.~Clegg, J.~Dong, E.~Sucar, D.~Novotny, M.~Zollhoefer, and M.~Mukadam, ``{{iSDF}: Real-Time Neural Signed Distance Fields for Robot Perception},'' in \emph{Robotics: Science and Systems (RSS)}, 2022.
\bibitem{pan_pin-slam_2024}
Y.~Pan, X.~Zhong, L.~Wiesmann, T.~Posewsky, J.~Behley, and C.~Stachniss, ``{{PIN}-{SLAM}: {LiDAR} {SLAM} Using a Point-Based Implicit Neural Representation for Achieving Global Map Consistency},'' \emph{IEEE Transactions on Robotics}, 2024.
\bibitem{miso2025}
Y.~Tian, H.~Cao, S.~Kim, and N.~Atanasov, ``{MISO: Multiresolution Submap Optimization for Efficient Globally Consistent Neural Implicit Reconstruction},'' in \emph{Robotics: Science and Systems (RSS)}, 2025.
\bibitem{Chou_2023_ICCV}
G.~Chou, Y.~Bahat, and F.~Heide, ``{Diffusion-{SDF}: Conditional Generative Modeling of Signed Distance Functions},'' in \emph{ICCV}, 2023.
\bibitem{Vicini2022}
D.~Vicini, S.~Speierer, and W.~Jakob, ``{Differentiable Signed Distance Function Rendering},'' \emph{ACM Trans. Graph.}, 2022.
\bibitem{wang_neus2_2023}
Y.~Wang, Q.~Han, M.~Habermann, K.~Daniilidis, C.~Theobalt, and L.~Liu, ``{{NeuS2}: Fast Learning of Neural Implicit Surfaces for Multi-view Reconstruction},'' in \emph{ICCV}, 2023.
\bibitem{oleynikova_voxblox_2017}
H.~Oleynikova, Z.~Taylor, M.~Fehr, R.~Siegwart, and J.~Nieto, ``{Voxblox: Incremental {3D} {E}uclidean Signed Distance Fields for On-board {MAV} planning},'' in \emph{IROS}, 2017.
\bibitem{long_sensor-based_2025}
K.~Long, Y.~Yi, Z.~Dai, S.~Herbert, J.~Cortés, and N.~Atanasov, ``{Sensor-based Distributionally Robust Control for Safe Robot Navigation in Dynamic Environments},'' \emph{The International Journal of Robotics Research}, 2025.
\bibitem{ReDSDF}
P.~Liu, K.~Zhang, D.~Tateo, S.~Jauhri, J.~Peters, and G.~Chalvatzaki, ``{Regularized Deep Signed Distance Fields for Reactive Motion Generation},'' in \emph{IROS}, 2022.
\bibitem{li2024config}
Y.~Li, X.~Chi, A.~Razmjoo, and S.~Calinon, ``{Configuration Space Distance Fields for Manipulation Planning},'' 2024.
\bibitem{li2024robot}
Y.~Li, Y.~Zhang, A.~Razmjoo, and S.~Calinon, ``{Representing Robot Geometry as Distance Fields: Applications to Whole-body Manipulation},'' in \emph{ICRA}, 2024.
\bibitem{newcombe_kinectfusion_2011}
R.~A. Newcombe, S.~Izadi, O.~Hilliges, D.~Molyneaux, D.~Kim, A.~J. Davison, P.~Kohi, J.~Shotton, S.~Hodges, and A.~Fitzgibbon, ``{{KinectFusion}: {Real}-time Dense Surface Mapping and Tracking},'' in \emph{{IEEE} {International} {Symposium} on {Mixed} and {Augmented} {Reality}}, 2011.
\bibitem{lee2019gpis}
B.~Lee, C.~Zhang, Z.~Huang, and D.~D. Lee, ``{Online Continuous Mapping using Gaussian Process Implicit Surfaces},'' in \emph{ICRA}, 2019.
\bibitem{wu_vdb-gpdf_2025}
L.~Wu, C.~Le~Gentil, and T.~Vidal-Calleja, ``{{VDB}-{GPDF}: Online {G}aussian Process Distance Field with {VDB} Structure},'' \emph{IEEE Robotics and Automation Letters}, 2025.
\bibitem{park_deepsdf_2019}
J.~J. Park, P.~Florence, J.~Straub, R.~Newcombe, and S.~Lovegrove, ``{DeepSDF}: {Learning} {Continuous} {Signed} {Distance} {Functions} for {Shape} {Representation},'' in \emph{CVPR}, 2019.
\bibitem{wang_neus_2021}
P.~Wang, L.~Liu, Y.~Liu, C.~Theobalt, T.~Komura, and W.~Wang, ``{{NeuS}: Learning Neural Implicit Surfaces by Volume Rendering for Multi-view Reconstruction},'' in \emph{Conference on Neural Information Processing Systems}, 2021.
\bibitem{jiang_h2-mapping_2023}
C.~Jiang, H.~Zhang, P.~Liu, Z.~Yu, H.~Cheng, B.~Zhou, and S.~Shen, ``H2-{Mapping}: {Real}-time {Dense} {Mapping} {Using} {Hierarchical} {Hybrid} {Representation},'' \emph{IEEE Robotics and Automation Letters}, 2023.
\bibitem{hio-sdf_2024}
V.~Vasilopoulos, S.~Garg, J.~Huh, B.~Lee, and V.~Isler, ``{HIO}-{SDF}: {Hierarchical} {Incremental} {Online} {Signed} {Distance} {Fields},'' in \emph{ICRA}, 2024.
\bibitem{pan_voxfield_2022}
Y.~Pan, Y.~Kompis, L.~Bartolomei, R.~Mascaro, C.~Stachniss, and M.~Chli, ``Voxfield: {Non}-{Projective} {Signed} {Distance} {Fields} for {Online} {Planning} and {3D} {Reconstruction},'' in \emph{IROS}, 2022.
\bibitem{curless_volumetric_1996}
B.~Curless and M.~Levoy, ``{A Volumetric Method for Building Complex Models from Range Images},'' in \emph{SIGGRAPH}, 1996.
\bibitem{kahler_very_2015}
O.~Kähler, V.~Adrian~Prisacariu, C.~Yuheng~Ren, X.~Sun, P.~Torr, and D.~Murray, ``Very {High} {Frame} {Rate} {Volumetric} {Integration} of {Depth} {Images} on {Mobile} {Devices},'' \emph{IEEE Transactions on Visualization and Computer Graphics}, 2015.
\bibitem{han_fiesta_2019}
L.~Han, F.~Gao, B.~Zhou, and S.~Shen, ``{FIESTA}: {Fast} {Incremental} {Euclidean} {Distance} {Fields} for {Online} {Motion} {Planning} of {Aerial} {Robots},'' in \emph{IROS}, 2019.
\bibitem{millane_nvblox_2024}
A.~Millane, H.~Oleynikova, E.~Wirbel, R.~Steiner, V.~Ramasamy, D.~Tingdahl, and R.~Siegwart, ``nvblox: {GPU}-{Accelerated} {Incremental} {Signed} {Distance} {Field} {Mapping},'' in \emph{ICRA}, 2024.
\bibitem{lan2021loggpis}
L.~Wu, K.~M.~B. Lee, L.~Liu, and T.~Vidal-Calleja, ``{Faithful Euclidean Distance Field From Log-Gaussian Process Implicit Surfaces},'' \emph{IEEE Robotics and Automation Letters}, 2021.
\bibitem{nerf2020}
B.~Mildenhall, P.~P. Srinivasan, M.~Tancik, J.~T. Barron, R.~Ramamoorthi, and R.~Ng, ``{NeRF}: {R}epresenting {S}cenes as {N}eural {R}adiance {F}ields for {V}iew {S}ynthesis,'' in \emph{ECCV}, 2020.
\bibitem{gropp_implicit_2020}
A.~Gropp, L.~Yariv, N.~Haim, M.~Atzmon, and Y.~Lipman, ``{Implicit Geometric Regularization for Learning Shapes},'' in \emph{International Conference on Machine Learning}, 2020.
\bibitem{takikawa_lod_2021}
T.~Takikawa, J.~Litalien, K.~Yin, K.~Kreis, C.~Loop, D.~Nowrouzezahrai, A.~Jacobson, M.~McGuire, and S.~Fidler, ``Neural {Geometric} {Level} of {Detail}: {Real}-time {Rendering} with {Implicit} {3D} {Shapes},'' in \emph{CVPR}, 2021.
\bibitem{wang_hotspot_2024}
Z.~Wang, C.~Wang, T.~Yoshino, S.~Tao, Z.~Fu, and T.-M. Li, ``{{HotSpot}: Signed Distance Function Optimization with an Asymptotically Sufficient Condition},'' in \emph{CVPR}, 2025.
\bibitem{instant-ngp}
T.~M\"uller, A.~Evans, C.~Schied, and A.~Keller, ``{Instant Neural Graphics Primitives with a Multiresolution Hash Encoding},'' \emph{ACM Trans. Graph.}, 2022.
\bibitem{replica19arxiv}
J.~Straub, T.~Whelan, L.~Ma, Y.~Chen, E.~Wijmans, S.~Green, J.~J. Engel, R.~Mur-Artal, C.~Ren, S.~Verma \emph{et~al.}, ``{The {R}eplica Dataset: A Digital Replica of Indoor Spaces},'' \emph{arXiv preprint arXiv:1906.05797}, 2019.
\end{thebibliography}