NeuOctree wins 24 of 28 position-error tests and builds in 50 ms

Neural Explicit Shape Representation

Jun-Hao Wang, Changan Lu, Baoquan Chen, Peng-Shuai Wang

cs.GR

2026-10-28

NeuOctree predicts ray hits, normals, and albedo from octree corner features, with the lowest position error in 24 of 28 cells and a 50 ms feedforward build.

What problem this solves

A ray tracer needs a hit point, a normal, and a material. SDFs, occupancy fields, and NeRF hide the surface in a scalar field, so rendering still walks the ray or extracts a mesh and bakes a texture. N-BVH and NGF (Neural Geometry Fields) can predict intersections directly, but each asset is fit alone. A network trained across objects has nowhere structured to write the result.

NeuOctree, from Peking University, puts both jobs on one sparse octree. Corner features can be optimized per object or written in a single forward pass. The decoder returns hit, position, normal, and albedo.

Method

Occupied leaves store a feature on each of eight corners. Neighboring voxels share corners, and trilinear interpolation keeps the field continuous across faces. A ray segment inside a voxel goes to a small MLP shared by every voxel. The geometry branch emits a hit logit, a point along the ray, and a normal. The material branch emits albedo. The target is an intersection, not a density level set, and there is no inside-outside label, so open surfaces fit.

A sample on the voxel boundary is often far from the surface, and that boundary moves when the view changes. Recurrent sampling projects the latest intersection back onto the ray and reads the field there. The pooled variant used for compression reads the entry, the exit, and three adaptive points, five reads in all, with later reads pulled toward the surface.

Traversal walks occupied leaves front to back and keeps the first candidate whose hit probability clears the threshold. Empty space is skipped. Normals and albedo go to a standard ray-tracing integrator, so reshading, reflection, refraction, and fisheye projection need no mesh and no baked texture.

Per-object mode optimizes the unique vertex features. Feedforward mode uses an octree U-Net to predict eight corner slots per occupied voxel, then averages slots that land on the same vertex. The reported checkpoint is not a raw scan. Its input is the union of a depth-9 mesh occupancy, colored from eight albedo renders, and a 200k point cloud, queried at depth 7. For image-conditioned generation, a sparse-octree VAE compresses the field to an 8³ latent grid, and a flow-matching DiT of about 0.7B parameters predicts occupancy and latents. That model is trained on 5,000 ShapeNet objects from ten categories. The paper does not compare it numerically with other generators.

Results

Geometry is scored on seven meshes from the Stanford scans and Thingi10K, at 81, 122, 244, and 823 KiB, from 16 fixed 512×512 views. dpm is mean intersection error in normalized coordinates times 10³, with the longest box edge set to 2. dnorm is oriented normal error in degrees. Against NGF, QNDF, VQAD, and N-BVH, NeuOctree has the lowest dpm in 24 of 28 cells: all 21 cells from 81 to 244 KiB, and 3 of 7 at 823 KiB. QNDF takes the other four. Normals win only 12 of 28 cells. NGF is often better at the small budgets.

Joint geometry and appearance, on 30 Objaverse assets and 30 ShapeNet assets:

DataMethoddpmdnormPSNR
ObjaverseN-BVH 823 KiB56.23511.84223.641
ObjaverseVQAD ≤823 KiB15.7774.98932.568
Objaverseper-object2.2923.10433.682
Objaversefeedforward4.5506.70628.539
ShapeNetN-BVH 823 KiB54.28412.56717.375
ShapeNetVQAD ≤823 KiB39.12611.96925.548
ShapeNetper-object1.6288.06434.877
ShapeNetfeedforward5.9695.22927.834

Per-object NeuOctree leads all three metrics on both sets. Against VQAD it cuts Objaverse dpm and dnorm by 85.5% and 37.8% and adds 1.11 dB. On ShapeNet the gains are 95.8%, 32.6%, and 9.33 dB. The feedforward model, trained on 32k Objaverse assets, beats VQAD on Objaverse position (4.550 vs 15.777) and loses on normals and PSNR. Moved to ShapeNet with no retraining, it beats per-object VQAD and N-BVH on all three. On ShapeNet its normal error, 5.229°, is also lower than the per-object fit at 8.064°, while position and PSNR still favor fitting.

The paper reports drops of 7.7% and 9.4% versus uniform sampling, and 12.0% and 17.0% versus endpoints. Table 4 lists recurrent 2.797 / 6.475°, uniform 3.036 / 7.102°, and endpoints 3.178 / 7.798°. On an open glass pane at 823 KiB, NeuOctree’s median two-sided depth gap matches the ground truth at 0. VQAD sits at 0.059 world units.

Mean fit time over the seven meshes is about 3.1 to 3.7 minutes for N-BVH, and 28.2 to 37.7 minutes for NeuOctree on two RTX 4090s. Feedforward construction takes 50 ms. Training is paid once over 32k Objaverse assets. The main text quotes 19.5 hours as an eight-GPU equivalent. The appendix measures about 50.6 hours on four RTX 3090s, plus about 5.2 hours and 91 GB to cache depth-9 occupancy. The shared network has 36.888 million parameters and is not stored per object.

Why it matters

Compression and generation need an output a ray tracer can query without meshing. The gap versus N-BVH is the feedforward path. About 3.5 minutes of per-object fitting becomes 50 ms, and an Objaverse checkpoint transfers to ShapeNet ahead of VQAD and N-BVH, which still fit every object. Per-object compression is a smaller step. Position error leads at the low budgets, QNDF wins four cells at 823 KiB, and fitting is slower. Ray-traced shading and the generator show that the interface works. They do not come with an external quality table.

Limitations

The paper states three limits. High-fidelity per-object fitting is still expensive, appearance is albedo only, and generation is a proof of concept.

The benchmarks are narrow: seven meshes, 30 assets per appearance set, and one glass pane for open surfaces. Timings are not matched on GPUs or on step counts. NeuOctree uses two 4090s. The baselines use one. The feedforward input includes mesh occupancy and albedo from eight renders, so the object is already a mesh before the octree is built. With the voxel feature on, the seven reference objects take 381 to 1,674 KiB, 806 KiB on average, so feedforward assets are not locked to the 823 KiB budget. There is no ray-tracing frame rate, and no speed comparison with 3D Gaussian Splatting or mesh codecs. VQAD was adapted to the same geometry supervision, and the NGF numbers were recomputed with the shared 16-view protocol rather than that method’s held-out views.

Terms

Source

What people are saying

Related papers

All paper explainers