{"id":31974491,"url":"https://github.com/robertcsollei/terrakit","last_synced_at":"2025-10-14T20:17:21.168Z","repository":{"id":310497175,"uuid":"1040083591","full_name":"Robertcsollei/TerraKit","owner":"Robertcsollei","description":"GIS Engine with Real-Time 3D Visualization","archived":false,"fork":false,"pushed_at":"2025-09-25T13:32:18.000Z","size":7969,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-25T15:32:12.811Z","etag":null,"topics":["cplusplus-20","cross-platform","engine","game-engine-3d","gis","gis-visualization","opengl","opengl3","webgl"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Robertcsollei.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-08-18T12:36:54.000Z","updated_at":"2025-09-25T13:32:20.000Z","dependencies_parsed_at":"2025-08-18T14:33:02.820Z","dependency_job_id":"5828e586-0f53-44af-b5ca-294a14898341","html_url":"https://github.com/Robertcsollei/TerraKit","commit_stats":null,"previous_names":["robertcsollei/opengl-renderer","robertcsollei/core-gl"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Robertcsollei/TerraKit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Robertcsollei%2FTerraKit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Robertcsollei%2FTerraKit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Robertcsollei%2FTerraKit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Robertcsollei%2FTerraKit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Robertcsollei","download_url":"https://codeload.github.com/Robertcsollei/TerraKit/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Robertcsollei%2FTerraKit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279021014,"owners_count":26086947,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-14T02:00:06.444Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cplusplus-20","cross-platform","engine","game-engine-3d","gis","gis-visualization","opengl","opengl3","webgl"],"created_at":"2025-10-14T20:17:19.670Z","updated_at":"2025-10-14T20:17:21.161Z","avatar_url":"https://github.com/Robertcsollei.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TerraKit: 3D GIS Rendering Engine\r\n\u003cimg src=\"https://github.com/Robertcsollei/TerraKit/blob/main/assets/images/TerraKit.png\" alt=\"TerraKit\" style=\"width: 43px; height: 43px;\"\u003e\r\n\r\nA modular 3D rendering engine for geospatial visualization and analysis. Demonstrates real-time physics simulation, coordinate system transformations, and high-performance rendering of large datasets.\r\n\r\n## 🚀 Demo Video\r\n[![Watch Demo Video](https://github.com/Robertcsollei/TerraKit/blob/main/assets/images/thumbnail.png)](https://vimeo.com/1119403473?fl=pl\u0026fe=sh)\r\n\r\n## Core Capabilities\r\n- **High-performance 3D rendering** - Instanced rendering for massive datasets (12k+ objects at 144+ FPS)\r\n- **Geospatial coordinate systems** - Geodetic transformations, ellipsoid mathematics\r\n- **Physics simulation** - Modular double precision physics engine with real-time calculations\r\n- **Interactive 3D controls** - Orbit, pan, zoom with precision camera system\r\n- **Cross-platform architecture** - Native C++ with WebAssembly support planned\r\n- **Scalability**: Modular design supports diverse visualization needs\r\n\r\n## Technical Architecture\r\n```\r\nApplications Layer\r\n├── Demo: Space Object Tracker    # Example: orbital mechanics simulation\r\n└── [Future: Terrain, Weather, etc.]\r\n\r\nEngine\r\n├── Renderer (OpenGL 3.3+)       # Modern graphics pipeline, WebGL compatible\r\n├── Core                         # Runtime, Scene, core orchestrator\r\n├── Network                      # HTTP client for data fetching\r\n├── Physics Module               # Coming soon: Real-time simulation systems (Currently part of Core)\r\n├── Geometry Engine              # Coming soon: Ellipsoid math, mesh generation (Currently part of Core)\r\n└── Platform Abstraction         # Coming soon: Cross-platform windowing, input\r\n```\r\n\r\n## Quick Start\r\n**Requirements:** C++20, OpenGL 3.3+, CMake 3.20+, vcpkg\r\n\r\n### Desktop Build (Windows/Linux/macOS)\r\n```bash\r\ngit clone https://github.com/Robertcsollei/TerraKit.git\r\ncd TerraKit\r\n\r\n# Set VCPKG environment variable\r\nexport VCPKG_ROOT=/path/to/vcpkg  # Windows: set VCPKG_ROOT=C:\\vcpkg\r\n\r\n# Configure and build using presets\r\ncmake --preset x64-release    # or x64-debug for debugging\r\ncmake --build --preset build-x64-release\r\n\r\n# Run example application\r\n./out/build/x64-release/examples/satelliteTracker/SatelliteTracker\r\n```\r\n\r\n### WebAssembly Build\r\n```bash\r\n# Requires Emscripten SDK installed\r\nsource /path/to/emsdk/emsdk_env.sh  # Windows: emsdk_env.bat\r\n\r\ncmake --preset wasm-release\r\ncmake --build --preset build-wasm-release\r\n\r\n# Serve the web build\r\ncd out/build/wasm-release\r\npython -m http.server 8000  # Navigate to localhost:8000\r\n```\r\n\r\n### OpenGL Version Configuration\r\nTerraKit supports multiple OpenGL versions for different target platforms:\r\n\r\n| OpenGL Version | Target Platform | Shader Version | Description |\r\n|----------------|-----------------|----------------|-------------|\r\n| **OpenGL 3.3 Core** | Desktop (Default) | `#version 330 core` | Maximum compatibility, older hardware |\r\n| **OpenGL 4.3 Core** | Modern Desktop | `#version 430 core` | Compute shaders, enhanced features |\r\n| **OpenGL 4.6 Core** | Latest Desktop | `#version 460 core` | Latest features, best performance |\r\n| **OpenGL ES 3.0** | WebAssembly/Mobile | `#version 300 es` | Web browsers via WebGL2 |\r\n| **OpenGL ES 3.2** | Modern Mobile | `#version 320 es` | Enhanced mobile capabilities |\r\n\r\n**Custom OpenGL Configuration:**\r\n```bash\r\n# Configure specific OpenGL version\r\ncmake --preset x64-debug -DOPENGL_VERSION=430 -DOPENGL_PROFILE=Core\r\ncmake --preset wasm-debug -DOPENGL_VERSION=320 -DOPENGL_PROFILE=ES\r\n\r\n# Available options:\r\n# OPENGL_VERSION: 330, 430, 460, 300, 320\r\n# OPENGL_PROFILE: Core, ES\r\n```\r\n\r\n**Note:** WebAssembly builds automatically default to OpenGL ES 3.0, while desktop builds default to OpenGL 3.3 Core for maximum compatibility.\r\n\r\n## Core Technologies\r\n- **Languages**: C++20, GLSL\r\n- **Graphics**: OpenGL 3.3, SDL2, GLM\r\n- **Build System**: CMake, vcpkg\r\n- **Libraries**: glad, stb, cpr, Dear ImGui\r\n\r\n## Development Philosophy\r\nThis engine explores fundamental challenges in 3D GIS:\r\n- **Coordinate precision** - Handling Earth-scale coordinates without floating-point errors\r\n- **Performance at scale** - Rendering thousands of dynamic objects smoothly\r\n- **Modular architecture** - Physics, rendering, and coordinate systems as independent modules\r\n- **Cross-platform deployment** - Native performance with web deployment capability\r\n\r\n## Planned Extensions\r\n- **WebAssembly build** - Browser deployment for wider accessibility\r\n- **Terrain rendering** - Digital elevation models, texture streaming\r\n- **Raster data pipeline** - Satellite imagery, weather data visualization\r\n- **Additional coordinate systems** - UTM, State Plane, custom projections\r\n- **Level of detail (LOD)** - Dynamic geometry optimization\r\n\r\n---\r\n**License:** Apache-2.0  | **Status:** Active Development\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobertcsollei%2Fterrakit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobertcsollei%2Fterrakit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobertcsollei%2Fterrakit/lists"}