fredriksonsound


Hello

I am Magnus Fredrikson, I do programming 3D modelling and some audio stuff. I am currently studying for a degree in computer engineering at KTH.

I program mainly in Java, C, C++ and JavaScript. I enjoy programming puzzles and such.

You can find a lot of my programming projects on my github page.



Projects and experience

Plotagon

I worked as a QA for plotagon, a swedish mobile and desktop application developer for user generated 3d videos from apr-2015 to sept-2018 (unity).

Project NaviRad

Project navirad is tool designed for training in using radar equipment. It was made as part of a course in programming interactive web-applications at KTH.

It uses a heightmap API to generate an approximation of what a radar would see from specific locations, using a tracing algorithm compiled to WASM from Rust.

It also integrates data from a sea-vessel tracking API to visualize the location of other boats in somewhat real-time.

Deploy, Code

BaSe

BaSe was a project I did at BTH. It is a binaural sound engine created for UDK with MAX and unrealscript.

This project is quite old but it worked and was really fun to build.

Here is a description and video.

Bit-Split

A Java and react-native app that manages bitcoin wallets, and portions out bitcoins according to user specifications into other wallets. For example for a small team receiving tips and such.

Application consisted of a server managing the wallets using the BitcoinJ library as the backend, and notified users on changes. App and Source no longer available publicly.

Reddit-video-maker

A java-app automating the generation of video-content with voice-over from reddit, popularized sometime in 2019. Uses chromedriver and ffmpeg.

Code

3D

I built a simple game-engine in java using LWJGL. The engine rendered the environent using deferred lighting by writing different information to different buffers, i.e. 1 buffer for diffuse textures, one buffer for depth, another for normals etc.

The shader then calculated the lighting only for pixels visible to the camera by combining the information stored in the buffers, along with information about the lights.

I learned something about optimization by combining several buffers into one buffer, by storing for example normals specular information as a single float.

The engine was simple but supported semi-transparent materials. The "levels" where serialized as json obects, and you could modify it in the editor by dragging things around.

Source code not available.