Open Source Robotics

A curated collection of high-quality open source robotics projects, tools, and software to propel the robotics community forward.

Surfel

  • Also called: surface element
  • Category: Sensing › 3D maps & reconstruction
  • Tags: mapping, slam, 3d-reconstruction, lidar, 3d-perception

A surface element: a small oriented disk with a position, normal and radius, often with color, confidence and timestamps, used to build dense 3D maps.

Definition

A surfel, short for surface element, is a small flat disk that approximates a patch of a surface. Each surfel stores at least a 3D position, a normal vector and a radius, and mapping systems usually add fields such as color, a confidence or stability value, and the times it was created and last updated. Surfels were introduced as a rendering primitive in computer graphics by Pfister and colleagues in 2000, and were later adopted for dense 3D reconstruction and SLAM with depth cameras and lidar.

A surfel map sits between a raw point cloud and a mesh or volumetric map. Unlike plain points, surfels carry orientation and extent, so they can be rendered as a closed-looking surface and compared with new measurements using point-to-plane distances. Unlike a truncated signed distance field on a voxel grid, they need no fixed volume and no fixed resolution, and they can be moved individually. That last property matters for SLAM: when a loop closure corrects the trajectory, systems such as ElasticFusion deform the surfel map with a deformation graph instead of rebuilding a volume.

In a typical surfel SLAM pipeline, the current map is rendered from the estimated sensor pose, often on the GPU, to produce a model image of positions and normals. The new frame is aligned to this rendering, which gives fast projective data association for ICP-style registration. Measurements that match an existing surfel update it by weighted averaging and raise its confidence; unmatched measurements create new surfels, and surfels that are rarely confirmed are removed. SuMa and SuMa++ apply this scheme to rotating lidar, using range images for rendering, and SuMa++ adds semantic labels to each surfel to filter out moving objects.

Why it matters

Surfels give a dense, editable surface map that supports fast registration and can be corrected after loop closure without rebuilding. They are a common choice in dense RGB-D and lidar SLAM, and similar oriented disks appear in newer neural and Gaussian-based scene representations.

Key applications

  • Dense RGB-D SLAM and indoor 3D reconstruction
  • Lidar SLAM for outdoor driving and mapping
  • Semantic mapping with per-surfel class labels
  • Point-based rendering of scanned scenes
  • Map deformation after loop closure

In practice

A team mapping a city block with a rotating lidar on a car uses a surfel-based SLAM system. For each new scan, the system renders the current surfel map into a range image at the predicted pose, aligns the scan to it with point-to-plane ICP, and then fuses matched points into existing surfels while adding new ones for unmatched areas. Engineers tune the stability threshold that decides when a surfel is trusted and the rules for removing surfels that are no longer observed, since parked cars that leave would otherwise remain in the map. Semantic labels from a segmentation network are attached to each surfel so that points on moving vehicles can be excluded from registration.

Common misconceptions

  • A surfel is just a point — it also has a normal and a radius, which make it a small oriented disk rather than a sample with no extent
  • Surfel maps are meshes — surfels are unconnected, with no explicit topology between neighbors
  • Surfels need a fixed voxel grid — they live in continuous space, which is one of their advantages over volumetric maps
  • Every observed point becomes a permanent surfel — fusion merges repeated observations and removes surfels that are not confirmed

Who should know this

  • SLAM and 3D mapping engineers
  • Lidar and RGB-D perception developers
  • Computer graphics and rendering engineers
  • Autonomous driving mapping teams

Related technologies

  • ElasticFusion
  • SuMa
  • TSDF Fusion
  • Point-Based Rendering
  • 2D Gaussian Splatting

Related terms

  • Point Cloud
  • SLAM
  • Iterative Closest Point
  • Range Image
  • Signed Distance Field
  • 3D Gaussian Splatting

Related projects

  • LingBot-Map: Streaming 3D reconstruction from one camera: pose and depth for every frame, live
  • oomwoo: Open-source DIY robot vacuum: 3D-printed, ROS2 + 2D LiDAR, fully local.
  • Cartographer: Google's real-time 2D and 3D SLAM system for multi-platform robotics
  • OpenDroneMap: Open-source photogrammetry toolkit that turns drone images into maps and 3D models
  • FAST-LIVO2: Fast, direct LiDAR-inertial-visual odometry from HKU-MARS, published in IEEE T-RO
  • DimOS: Python robotics runtime with agents, SLAM and teleop, no ROS required

This website requires JavaScript to function properly. Please enable JavaScript to explore our collection of open source robotics projects.