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 – GitDoc

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 – GitDoc

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.