Generic Mapping Tools (GMT) is a mature, open-source collection of approximately 100 command-line tools for processing geographic and Cartesian data and producing high-quality PostScript illustrations, maps, and animations. The system is architected as a modular C library with a central dispatcher executable (`gmt`) that loads and runs individual modules. It supports both a classic mode (direct module calls) and a modern mode (`gmt begin/end`, `gmt subplot`) that manages sessions, figures, and panels. Key entry points include the `gmt` command, the C API (`GMT_Create_Session`, `GMT_Call_Module`), and shell completion scripts. Data flows involve reading grid, table, image, and color palette table (CPT) data from local files or remote servers (via `@` prefix), processing through modules (e.g., `grdimage`, `psxy`, `grdmath`, `grdfilter`), and outputting PostScript, grids, or other formats. External dependencies include netCDF, GDAL, FFTW, PCRE/POSIX regex, PROJ, GSHHG coastlines, and DCW country polygons. The codebase exhibits high craftsmanship with systematic option parsing, a well-defined API, extensive test coverage, and reusable infrastructure components.
A comprehensive monorepo for the maptalks 2D/3D WebGL/WebGPU map rendering engine. It provides a full-stack geospatial visualization framework including core map controls, geometry types (Marker, LineString, Polygon), multiple layer types (Tile, Vector, GLTF, 3D Tiles, Video, Particle), advanced shading (PBR, Phong, Cloth, Subsurface), post-processing (bloom, SSR, TAA, fog, weather), spatial analysis (viewshed, cut, flood, heightmap), traffic simulation, and interactive editing tools. The architecture is modular with ~20 interdependent packages under a pnpm workspace, using a custom WebGL abstraction (fusion.gl) and a vector tile pipeline with worker-based processing. It supports both Canvas2D and WebGL renderers, with emerging WebGPU support via WGSL shaders. The codebase is well-structured with reusable patterns (mixin, painter plugin, worker communication, LRU cache, texture pooling) but shows medium technical drift due to experimental WebGPU code, duplicated utility functions across packages, and reliance on legacy tooling (regl, shelf-pack).
This repository is a Jupyter Book for the University of Tennessee's GEOG-312 course on geospatial programming. It contains lecture notebooks covering Python fundamentals and geospatial libraries (GeoPandas, Rasterio, Xarray, Leafmap, Geemap, etc.), along with lab exercises. It is primarily an educational resource, not a production application or data pipeline. The content is well-structured with paired Markdown and Jupyter notebook files using jupytext, and includes CI/CD for building the book. While not a reusable software library, the pedagogical patterns and notebook organization are of high quality.
This is a .NET client library for Google Maps Platform web services. It provides a strongly-typed, async-first wrapper around 15+ Google Maps APIs, including Geocoding, Directions, Distance Matrix, Places (New), Routes, Address Validation, Elevation, Time Zone, Roads, Solar, Aerial View, Air Quality, Pollen, and Static Maps. The library is published as a NuGet package (over 2M downloads) and targets multiple .NET frameworks (netstandard2.0, net8.0, net10.0). It follows a consistent request/response pattern with generic constraints for compile-time safety, and includes a built-in engine that handles HTTP serialization, API key injection, error handling, and OpenTelemetry diagnostics (tracing and metrics). An optional dependency injection extension package registers `IGoogleMapsClient` with `IHttpClientFactory`. The repository also contains a comprehensive test suite with a VCR (record/replay) system, benchmarks, mutation testing, and sample applications (Blazor, Console, Minimal API, Generic Host) demonstrating usage.
PythonRobotics is a large collection of robotics algorithms implemented in Python, designed primarily for educational purposes and as a companion to a textbook. It covers a wide range of robotics domains including localization (EKF, particle filter, histogram filter), mapping (grid maps, NDT, clustering), SLAM (EKF SLAM, FastSLAM, GraphSLAM), path planning (A*, Dijkstra, RRT variants, PRM, DWA, Frenet, etc.), path tracking (Stanley, LQR, MPC, pure pursuit), arm navigation (inverse kinematics, RRT for arms), aerial navigation (drone trajectory, rocket landing), bipedal walking, inverted pendulum control, and mission planning (state machines, behavior trees). Each algorithm is implemented as a standalone script with a main() function that runs a simulation and visualizes results using matplotlib. The code is not packaged as a library and is not intended for production use; it is a learning resource with clear, readable implementations that reference academic papers. The repository includes extensive documentation in Sphinx RST format, CI/CD pipelines, and a test suite that runs each demo without animation.
Nakarte is a client-side single-page web mapping application built with Leaflet and Knockout, specialized for outdoor activities like hiking, cycling, and mountaineering. It provides an extensive catalog of map layers (OSM, satellite, topographic, overlays) with a strong focus on European and Russian regions. The application includes comprehensive GPS track management: loading from files (GPX, KML, GeoJSON, etc.) and online services (Strava, Garmin, OSM, Wikiloc), editing, elevation profiles, and exporting to GPX/KML/ZIP or Garmin JNX format. Additional features include search with multiple providers, panorama viewers (Mapillary, Wikimedia), azimuth/distance measurement, coordinate display in various formats, map printing with page layout, session save/restore, and custom layer configuration. The architecture is a classic Leaflet-based SPA with Knockout for UI bindings, webpack for bundling, and a separate CORS proxy server for tile access. External dependencies include Leaflet, Knockout, protobuf for track serialization, and various external API services. The codebase shows signs of organic growth with legacy code patterns (vendored scripts, relaxed ESLint for old files) and mixed English/Russian comments.
Tilt is a Ruby library that provides a generic interface to a multitude of template engines. It abstracts away the differences between engines like ERB, Haml, Markdown variants, and many others, offering a unified API for template loading, compilation, and rendering. The architecture is built around a central Tilt module, a Mapping class that associates file extensions with template implementations, and a base Template class that individual engines subclass. The library supports lazy loading of template engines, template caching, and pipeline composition. It is widely used in the Ruby ecosystem, particularly in web frameworks like Sinatra and Rack. The repository under rtomayko/tilt is no longer maintained, as the project has moved to jeremyevans/tilt, but this version represents the stable 2.x series. The code is well-structured and demonstrates good software engineering practices, though some template implementations are deprecated or rely on older gems.