Rippr.io is a media downloading and processing tool that enables users to offline media from YouTube and pretty much every other common video sharing service on the modern internet. This project is a massive overhaul and a fork of the JackTheVideoRipper project by DanTheMan213 that acts as a interface to the YouTubeDL command line tool.
More Details Here: https://www.froman.us/projects/rippr-io
Informatix is a .NET framework application for media processing and organizing, originally built for offlining personal data from Reddit.
It interacts with the Reddit API using a custom library and utilizes a local SQLite server to store user data. It can also add custom user tags to individual posts and categorize based on them.
For it, I wrote an authentication server to send data for OAuth2 and receives the token response from Reddit. I then use REST requests to the API to request user data.
Informatix totals about 12 thousand lines of code. I use it on a daily basis to work with my data offline.
More Details Here: https://www.froman.us/projects/informatix
Samples: FileSystem, Database, WebDriver, Reddit API
For our game, Edge, I built a voxel engine to use for our designers to build islands with.
It employs Unity's physics and rendering systems to display a polygonal mesh with a custom shader. This shader supports bump-mapping, ambient occlusion, and Blinn-Phong specular reflections.
It also allows for real time editing with different brush patterns (additive, destructive, difference/exclusion and shapes). You can also paint on textures like moss, grass, and sand.
It handles serialization to both OBJ and FBX file types for editing in external 3D modeling software like 3DS Max, Blender, or Maya.
This project is a raytracer/renderer implemented in C++ with OpenGL using the GLFW/Glew APIs. Math/Vector operations using GLM, Scene built using OpenSceneView.
The application is built using an MFC/ATL windows native frontend. The main window is reworked to support shader-based rendering.
Features include anti-aliasing, real-time screen space reflections, texture mapping, soft shadows, lighting (ambient, diffuse, specular), multiple lighting sources, math-based model generation.
As of 9/25/23: I am currently working on a more portable build / reworked and modernized build system because the original projects platform doesn't support build systems after VS 2017.
Source (Raytracer): https://github.com/fromanan/raytracer
Source (Renderer): https://github.com/fromanan/renderer
Content displayed is generate dynamically using PHP with classes and user inputted data. The PHP generates styled elements to show user data such as the buttons on the left, the major HTML blocks, and even the search bar.
The next step is to generate class instances dynamically based on configurations and store the user data on a hosted database.
Additionally, I want to test moving it into .NET framework (converting to C# classes) and then instead of interpreting PHP, compile the page and generate a static HTML/CSS output, before serving it to the user.
Live Demo: https://starforged.net/documentation
Over the Summer of 2019, I worked in Boston at Aevex Aerospace's software development division. During this time, I worked to adapt their aerospace visualization software onto a Microsoft HoloLens augmented reality kit.
It enabled air traffic controllers to view a Google Maps-like globe using real-time data within their periphery. They are then able to see air traffic in real time and manipulate the globe and interact with objects using the HoloLens controllers.
For this project, I wrapped a C++/C# desktop app into UWP using a compatibility layer. I was able to run the application with smooth rendering FPS onto a HoloLens set.
Nova is an extensions library primarily used for Unity Game Engine, but also functionally for .NET framework C#. It is essentially the result of compiling my experience in 4 years of game development into one library to provide fast and lean prototyping.
It is used for simplifying commonly used tasked such as input operations, camera controls, collision handling, item pickups, and player interactions. It dramatically reduces the code necessary for physics operations such as player and item movement while remaining frame independent, thus resulting in smooth motion out of the box.
Nova allows user to have access to descriptive functions which drastically simplify and clarify code without the express need for comments. In many instances, as below, it can shorten multiple lines into a single line of code with a descriptive title.
It also provides filesystem interfacing and web interfacing for Unity games. This is notably useful for screenshots, configurations files, as well as playtesting/survey forms connected to the web.
It is notably used in Edge, Robo Redirekt, Unboolievable (three shipped titles).
Source: https://github.com/fromanan/nova
{ without nova ⟶ with nova }
Lolcode is a high-level procedural language complete with static variable typing, arrays, string literals, flow control (switch, if/else, while, for, goto), functions, recursion, and basic arithmetic. It compiles to an intermediate language or pseudo-assembly that can be run on a virtual machine.
The language shares similarities syntactically with C-family languages (though it is a bit more verbose), being broken primarily into expressions and statements. An abstract syntax tree is generated from parsing which is then used to generate intermediate code or assembly. The compiler also generates a symbol table with variables and functions.
Supported primitives include booleans, floating points, integers, chars, and strings.
A demonstration has been prepared at the link below along with full language specifications and features.
{ recursive fibonacci sequence in lolcode }