SM Projects
C++
Domset Library – Git
Structure from Motion algorithms produce camera poses and sparse point cloud. Depending on the size of the dataset, point cloud densification of the sparse point cloud can be computationally very expensive.
In order to simplify this process, this library is used to cluster cameras which have similar views. This way, the point cloud densification can be done for individual cluster separately.
This library has been merged into the OpenMVG Structure From Motion library.
Metric – Git
A simple single header library that is used to measure execution times for specific time segments. The tool only uses C++11 standard library.
Logger – Git
A simple single header library that can be used to log with multiple logging levels.
Elixir
Exif Parser – Git – Doc
This package is used to parse EXIF/TIFF metadata from JPEG and TIFF files. These metadata tags are added to the images during the capturing process.
This parser is was developed to aid in processing a large collection of images during the 3D reconstruction process.
File System Utils – Git – Doc
This is a wrapper around the linux file system commands used to modify the file system. The following commands are available using the package: + mount + umount + lsblk
World View – Git
A web server application used to share the lore of my D&D world to my players. This project also allows the creation of token for different campaigns in the same world, so that different groups can be given access to information they need.
The lore is managed as a series of text files. The files contain front matter to provide access control and template information.
Go
Studio – Git
A Go package used to manage a music library and make it available through a REST API. This project was designed to interact with the kawa radio streamer. This enables studio to manage the library and user interaction and kawa is used to stream the music.
This project is based on Stewdio which was written in python.
Studio is still a work in progress as the API is not feature complete. The focus of the package was to provide a project with a real use case while learning GO.
Blaze – Git
Blaze is a simple static site generator that doesn’t do much other than applying content from markdown/html pages to a template. Hence, it is easy to use and requires very little tinkering.
This website is rendered using Blaze.
Other
Note – Git
A simple shell command used to manage notes. I wrote this script to manage my notes simply using a git repository, so that I can have my notes available across multiple machines without a problem.
OpenAPI Validatdation VIM Plugin – Git
A VIM Plugin that is used to validate a OpenAPI
specification file. This plugin
requires the openapi-spec-validator
python package.
OpenAPI is an excellent API specification standard that can be used alongside
Swagger to visualize and provide very intuitive
documentation for your REST API.
asdf-cmake – Git
This is a plugin for the excellent asdf version manager.
ASDF allows the user to manage multiple language runtimes. As CMake forms an
integral part of many C/C++ projects, I decided to work on this plugin which
proved to quite useful while provisioning development machines as the versions
required can be specified in the .tool-versions
file in the working directory.