in each group. The corresponding 3D points are $\mathscr{S} = \{(P_{A}, P_{B}, P_{C})_{i} | i = 0...N\}$. Three points in a group are restricted to be non-colinear based on the restriction $\mathscr{R}_{1}$. $\angle(\cdot)$ is the angle between two vectors. $$\begin{split}
    \mathscr{R}_{1} = \{\alpha \geq \angle(\overrightarrow{P_{A}P_{B}} , \overrightarrow{P_{A}P_{C}} )  \geq \beta, \\
    \alpha  \geq \angle(\overrightarrow{P_{B}P_{C}} , \overrightarrow{P_{B}P_{A}} )  \geq \beta | P\in \mathscr{S} \}
\end{split}$$ where $\alpha, \beta$ are hyper-parameters. In all experiments, we set $ \alpha= 120\degree $, $ \beta = 30\degree $

In order to sample more long-range points, which have ambiguous relative locations in 3D space, we perform long-range restriction $\mathscr{R}_{2}$ for each group in $\mathscr{S}$. $$\mathscr{R}_{2} = \{\|\overrightarrow{P_{k}P_{m}}\|>\theta | k, m \in [A, B, C], P\in \mathscr{S} \}$$ where $\theta =0.6m$ in our experiments. Therefore, three 3D points in each group can establish a plane. We compute the normal vector of the plane to encode geometric relations, which can be written as $$\label{eq:normal}
\begin{split}
    \mathscr{N} = \{\boldsymbol{n_{i}}
    = \frac{\overrightarrow{P_{Ai}P_{Bi}}\times\overrightarrow{P_{Ai}P_{Ci}}}
    {\left \| \overrightarrow{P_{Ai}P_{Bi}}\times \overrightarrow{P_{Ai}P_{Ci}} \right \|} | \\
     {(P_{A}, P_{B}, P_{C})_{i} \in \mathscr{S}},
    {i = 0...N}\}
\end{split}$$ where $\boldsymbol{n_{i}}$ is the normal vector of the virtual plane $i$.

**Robustness to Depth Noise.** Compared with local surface normal, our 