Bridge Detection
I successfully implemented a bridge detection algorithm for point clouds. The process involved identifying potential bridge points, grouping connected points using heuristics, and applying principal component analysis to create oriented bounding boxes. These bounding boxes were instrumental in downstream processes for refining road mesh generation.
Open Street Map Converter
Efficiently parsed road data from OSM and transformed it into corresponding ASAM Open Drive representations. Overcame the challenge posed by the disparity in data formats — OSM describing roads as point series and Open Drive utilizing curves. Implemented curve fitting for various curve types based on the given points. Additionally, successfully converted generic road sign descriptions into their Open Drive counterparts, ensuring accurate sign shapes (round, triangle, octagon, etc.) and textures were generated.
Asset Library
I orchestrated the storage and distribution of diverse asset types (3D meshes, scene graphs, binary blobs, etc.) through HTTPS. Utilizing the cereal library for serialization, each asset was augmented with metadata for seamless addressing via UUIDs and versioning support.
The server, implemented in Python, employed PostgreSQL for metadata management and Amazon S3 for storage. Client implementations, in C++, employed native websockets or Emscripten websockets. Client-side caching ensured local storage of assets, with updates triggered only when the local version became outdated.
A dual-layer caching mechanism was implemented, first storing assets locally after downloading from the server or loading them to memory from disk. A straightforward ring buffer of in memory assets facilitated easy extension for alternative paging methods.