Hey, this repo acts as a small showcase for some projects I did or that I am still working on 🙂 The primary focus is on projects I did in my bachelor and master studies of Mediainformatics so far and that I thaught were worth mentioning. I also added some private projects as well. The collection is not complete at all and subjected to change 😄
Java, Python, Kotlin, Go, Javascript, C++, Rust
Java and Python are the languages I have the most knowledge about.
I recently started to learn RUST as a C++ replacement.
I do not really like Javascript, but I can use work with it when needed
Dialogue Management, Chatbots, Voice User Interfaces, Conversational UIs, Scalable Architectures, Microservices, Computer Graphics, Machine Learning, NLP/NLU, Reinforcement Learning, Data Analytics, Database Systems,
Out of personal interest or to improve my skills or knowledge I worked/I am working on the following projects. For a complete list of the ones that are public on GitHub you can browse through them under my profile here.
https://github.com/Kai-Karren/nlg-server
An example for a Naturual Language Generation (NLG) Server that can be used to separate the response management from the dialogue engine.
Uses Rasa's NLG Server API.
https://github.com/Kai-Karren/rasa-websocket-channel
As a PoC I implemented an example for a Custom WebSocket Channel for Rasa using Sanic.
https://github.com/Kai-Karren/Kai-Karren.github.io
I am currently hosting my website https://kaikarren.de using GitHub Pages with an GitHub Actions CI/CD pipeline.
I have a variety of public example and template repo here on GitHub like the Java Template or the example on how to dockerize a Go application here.
Closed source
Simple Dialogue Engine (SDE) is my personal dialogue engine that I use for personal experiments with focus on simplicity. It is based things I learned while working on VUISA and StoryBot.
Closed source
I implemented some dialogue engine actions servers that can be used as Action Servers for Rasa-based Dialogue Engines.
As part of my study program I worked on the following projects that I think are worth mentioning. Most of them are closed source however.
As a praxis project for a media psychology seminar I created a chatbot that informs about the implications of so-called social bots in social media. Gitlab repo
As part of the computer graphics core lecture that I took in my bachelor studies, I implemented a ray tracer together with my team partner Marc Ruble. This was my first major encounter with C++ in a larger project.
Some images that have been rendered with the ray tracer can be found on my entry page in the rendering competition of CG WS2017/2018 ("My place in the sky" Last accessed 2.11.2022). The HTML page I created is unfortunately not accessible anymore.
As project of the Database System core lecture from Prof. Jens Dittrich, I implemented a (low-level) database from the ground up in C++. This included to implement different data layouts like row- and column-store, hybrid-store-approaches, as well as indexes like BTrees and data compression to improve access times in the performnce competions where multiple 100,000 rows were inserted into the DB and queries were executed in the data.
A dialogue engine for interactive story telling with Chatbots. Uses the Twee story format and some additional macros from Twine 2.0.
A shutter system that can be controlled with a mobile APP. Including schedules and light-level dependent changes.
In the software project of my bachelor studies, I implemented a 2D racing game with multiplayer support in a group of six students. In the second part each of us implemented an AI for a car that had to complete different tracks and our AIs competed wit hanother and with the ones from other teams in a turnament.
VUISA which stands for Voice User Interface using Sentiment Analysis is a framework I implemented for my bachelor thesis. It allows to create phone-based VUIs that can analyse the user's sentiment/emotions with a self-trained classifier. Based on the classified emotions, the dialogue control is able to adapt to the user depending on the dialogue flow.