GSoC 2026 : Community Bonding Report - Implement Planar Face Extraction and K-Core Decomposition Algorithms for pgRouting

Name: Md Sakir Ahmed
Project Title: Implement Planar Face Extraction and K-Core Decomposition Algorithms for pgRouting

Mentors: @cvvergara, @robe
Organization: OSGeo / pgRouting
OSGeo Profile: OSGeo Profile Link
Project Wiki: Github Wiki Link
Repository: Repo Link

Period: Community Bonding (May 8 - May 25, 2026)

Work Done in Community Bonding Period

1. Project Onboarding

  • Introduced myself on pgRouting mailing lists and bonding discussions.
  • Attended mentor meetings regarding project expectations, workflow, and development approach.
  • Reviewed pgRouting contribution guidelines, testing workflow, and documentation standards.
  • Studied previous GSoC projects and existing pgRouting algorithm integration patterns.

2. Wiki & Documentation Setup

  • Created the project wiki page and weekly reporting structure
  • Added project summary, repository links, deliverables, and timeline sections to the wiki
  • Added placeholder sections for weekly updates, benchmark reports, and final deliverables
  • Linked the project wiki on the official GSoC accepted students page

3. Deep Codebase Study

  • Studied pgRouting’s execution pipeline:

    SQL ->C wrapper - > C++ driver - > Boost Graph Library - > SQL result mapping

  • Read existing implementations including:

    • pgr_kruskal
    • pgr_prim
    • pgr_connectedComponents
  • Studied how pgRouting handles:

    • graph construction from SQL edge tables
    • vertex ID remappiing between PostgreSQL IDs and contiguous Boost indices
    • result formatting and SRF output generation
    • parameter validation and memory management
  • Researched planar_face_traversal visitor workflow and outer-face traversal handling.

  • Studied Graphviz planar traversal examples and compared traversal behavior with Boost documentation.

  • Researched Batagelji - Zaversniks k-core decomposition workflow and degre-peeling process.

  • Investigated directed-to-undirected conversion handling for planar traversal input.

4. Implementation Planning

  • Prepared implementation structure for:

    • pgr_planarFaces
    • pgr_coreNumbers
  • Planned:

    • C++ result structures
    • SQL output columns
    • wrapper-layer workflow
    • benchmark dataset structure
    • pgTap testing workflow
  • Refined implementations approach after deeper architecture study and mentor discussions.

5. Community Interaction

  • Discussed implementation strategy and traversal workflow with mentors.
  • Participated in discussions regarding wrapper structure and integration sequence.

Plans for the Coding Period

  • Begin implementation of pgr_planarFaces() by integrating Boost planar embedding and planar_face_traversal workflow into pgRouting’s SQL ->C - > C++ pipeline.
  • Implement traversal visitor logic, face extraction workflow, and directed-to-undirected graph handling for planar traversal.
  • Begin implementation of pgr_coreNumbers() using Boost’s Batagelj–Zaversnik k-core decomposition algorithm.
  • Develop graph construction, core-number result mapping, and SQL output formatting for k-core decomposition.
  • Write pgTap regression tests and Sphinx documentation for both algorithms alongside implementation.
  • Start benchmarking on OpenStreetMap datasets after initial integration and testing stabilize.

Am I blocked on anything?

No, I am not currently blocked on anything.

Regards,
Md Sakir Ahmed
OSGeo id: sakir05
GitHub: sakirr05