From e7b84a65084e17d5da64fe1fa716d7a186ed701c Mon Sep 17 00:00:00 2001
From: s-ol
Date: Mon, 4 Oct 2021 16:13:31 +0200
Subject: Split root out of mmm repo
---
root/portfolio/1u-mod/media: image$jpeg.jpg | Bin 300975 -> 0 bytes
root/portfolio/VJmidiKit/media: video$mp4.mp4 | Bin 1025752 -> 0 bytes
root/portfolio/_web_view: type | 1 -
root/portfolio/alv/media: video$mp4.mp4 | Bin 21777 -> 0 bytes
root/portfolio/harold-halibut/media: image$png.png | Bin 240393 -> 0 bytes
root/portfolio/hex-pad/media: image$jpeg.jpg | Bin 43287 -> 0 bytes
root/portfolio/hidden: text$lua -> bool | 1 -
root/portfolio/lame: text$markdown.md | 85 ----
root/portfolio/lorem_ipsum/media: image$jpeg.jpg | Bin 56234 -> 0 bytes
root/portfolio/lorem_ipsum/media: image$png.png | Bin 15871 -> 0 bytes
root/portfolio/mmm/media: image$png.png | Bin 59050 -> 0 bytes
root/portfolio/playreactive/media: image$png.png | Bin 21689 -> 0 bytes
root/portfolio/rise/media: image$png.png | Bin 3761 -> 0 bytes
root/portfolio/spline/media: image$png.png | Bin 41031 -> 0 bytes
root/portfolio/text$moonscript -> mmm$dom.moon | 439 ---------------------
root/portfolio/vectronom/media: video$webm.webm | Bin 1318607 -> 0 bytes
root/portfolio/visualist/media: image$jpeg.jpg | Bin 37308 -> 0 bytes
17 files changed, 526 deletions(-)
delete mode 100644 root/portfolio/1u-mod/media: image$jpeg.jpg
delete mode 100644 root/portfolio/VJmidiKit/media: video$mp4.mp4
delete mode 100644 root/portfolio/_web_view: type
delete mode 100644 root/portfolio/alv/media: video$mp4.mp4
delete mode 100644 root/portfolio/harold-halibut/media: image$png.png
delete mode 100644 root/portfolio/hex-pad/media: image$jpeg.jpg
delete mode 100644 root/portfolio/hidden: text$lua -> bool
delete mode 100644 root/portfolio/lame: text$markdown.md
delete mode 100644 root/portfolio/lorem_ipsum/media: image$jpeg.jpg
delete mode 100644 root/portfolio/lorem_ipsum/media: image$png.png
delete mode 100644 root/portfolio/mmm/media: image$png.png
delete mode 100644 root/portfolio/playreactive/media: image$png.png
delete mode 100644 root/portfolio/rise/media: image$png.png
delete mode 100644 root/portfolio/spline/media: image$png.png
delete mode 100644 root/portfolio/text$moonscript -> mmm$dom.moon
delete mode 100644 root/portfolio/vectronom/media: video$webm.webm
delete mode 100644 root/portfolio/visualist/media: image$jpeg.jpg
(limited to 'root/portfolio')
diff --git a/root/portfolio/1u-mod/media: image$jpeg.jpg b/root/portfolio/1u-mod/media: image$jpeg.jpg
deleted file mode 100644
index 2d6f26f..0000000
Binary files a/root/portfolio/1u-mod/media: image$jpeg.jpg and /dev/null differ
diff --git a/root/portfolio/VJmidiKit/media: video$mp4.mp4 b/root/portfolio/VJmidiKit/media: video$mp4.mp4
deleted file mode 100644
index 92d0645..0000000
Binary files a/root/portfolio/VJmidiKit/media: video$mp4.mp4 and /dev/null differ
diff --git a/root/portfolio/_web_view: type b/root/portfolio/_web_view: type
deleted file mode 100644
index bde5644..0000000
--- a/root/portfolio/_web_view: type
+++ /dev/null
@@ -1 +0,0 @@
-text/html+interactive
diff --git a/root/portfolio/alv/media: video$mp4.mp4 b/root/portfolio/alv/media: video$mp4.mp4
deleted file mode 100644
index a0248c0..0000000
Binary files a/root/portfolio/alv/media: video$mp4.mp4 and /dev/null differ
diff --git a/root/portfolio/harold-halibut/media: image$png.png b/root/portfolio/harold-halibut/media: image$png.png
deleted file mode 100644
index d6dba98..0000000
Binary files a/root/portfolio/harold-halibut/media: image$png.png and /dev/null differ
diff --git a/root/portfolio/hex-pad/media: image$jpeg.jpg b/root/portfolio/hex-pad/media: image$jpeg.jpg
deleted file mode 100644
index 36324e0..0000000
Binary files a/root/portfolio/hex-pad/media: image$jpeg.jpg and /dev/null differ
diff --git a/root/portfolio/hidden: text$lua -> bool b/root/portfolio/hidden: text$lua -> bool
deleted file mode 100644
index b30e187..0000000
--- a/root/portfolio/hidden: text$lua -> bool
+++ /dev/null
@@ -1 +0,0 @@
-return true
diff --git a/root/portfolio/lame: text$markdown.md b/root/portfolio/lame: text$markdown.md
deleted file mode 100644
index c6c1f4c..0000000
--- a/root/portfolio/lame: text$markdown.md
+++ /dev/null
@@ -1,85 +0,0 @@
-skillset
---------
-
- Here you can find a selection of technologies, languages and skills I have acquired and used in the past, - together with select projects demonstrating these abilities. - Projects marked in italic represent employment / professional consulting (see below for details). -
- -- programming - - C++ - - openFrameworks: [VJmidiKit][VJmidiKit] - - JS - - nodejs & react: [*rise*][rise], [iii telefoni][tre_telefoni], [IYNX][iynx] - - Lua & Moonscript: [this website](/meta), [vision-training-kit][vtk], [gayngine][gayngine] - - Python: [themer][themer] - - GLSL & HLSL: [*Vectronom*][vectronom], [*Harold Halibut*][hh], [VJmidiKit][VJmidiKit] (raymarching content) - - C# & Unity: [*Vectronom*][vectronom], [*Harold Halibut*][hh] - - Clojure: [*Vectronom*][vectronom] (UGC backend) -- electronics - - PCB Design: [btrktrl][btrktrl] - - embedded programming - - micro controllers: [IYNX][iynx], [*Vectronom*][vectronom] (fair booth) - - FPGAs: [btrktrl][btrktrl] -- general technologies - - avid linux user - - docker & docker-compose: [*rise*][rise] - - mongodb: [*rise*][rise] -- visual & motion design: [demoloops][demoloops], [VJmidiKit][VJmidiKit] - -professinal work ------------------- -### slow bros - Harold Halibut -- I am working with Slow Bros on their upcoming game Harold Halibut - For Harold Halibut I do Gameplay- and Tools Programming, as well as Shaders and Porting. -
- -### ludopium - Vectronom -I have worked on [Vectronom](https://vectronom.arte.fr), -where I implemented and worked on many systems in and around the game: - -- gamplay programming -- UI programming -- palette system using HLSL shaders -- clojure-based REST API for storing and sharing UGC - - integration with backend services by Steam and Nintendo -- development of tech for the fair booth - - realtime speedrunning leaderboard - - custom driver for LED lettering -- porting (Nintendo Switch, Android, iOS) - -### rise technologies -- I worked as a full-stack developer with rise technologies on their remote support solution for three years. - In this time I designed, created and worked on multiple systems and layers of the product: -
- -- front-end development (react, material-ui) -- back-end development - - main application (meteorjs, node, monogdb) - - microservice architecture (nodejs, rabbit MQ) - - notification handling & delivery (APN, FCM) -- mobile development & debuggin (cordova for Android, iOS) -- webRTC conferencing - - using janus-gateway - - contributed C patches reinforcing the communication security for our needs - - implemented client-side logic - - implemented gateway orchestration -- dev-ops - - designed a custom CI system - - designed deployment infrastructure on MS Azure (docker, docker-compose) - - supervised migration from MS Azure to Amazon AWS - -[themer]: https://github.com/s-ol/themer -[vtk]: https://s-ol.itch.io/vision-training-kit -[iynx]: /games/IYNX -[btrktrl]: /projects/btrktrl -[VJmidiKit]: /projects/VJmidiKit -[demoloops]: /projects/demoloops -[tre_telefoni]: /projects/iii-telefoni -[gayngine]: /blog/love_lua_photoshop_and_games - -[vectronom]: #ludopium-vectronom -[hh]: #slow-bros-harold-halibut -[rise]: #rise-technologies diff --git a/root/portfolio/lorem_ipsum/media: image$jpeg.jpg b/root/portfolio/lorem_ipsum/media: image$jpeg.jpg deleted file mode 100644 index f52b200..0000000 Binary files a/root/portfolio/lorem_ipsum/media: image$jpeg.jpg and /dev/null differ diff --git a/root/portfolio/lorem_ipsum/media: image$png.png b/root/portfolio/lorem_ipsum/media: image$png.png deleted file mode 100644 index 994884a..0000000 Binary files a/root/portfolio/lorem_ipsum/media: image$png.png and /dev/null differ diff --git a/root/portfolio/mmm/media: image$png.png b/root/portfolio/mmm/media: image$png.png deleted file mode 100644 index 34a562e..0000000 Binary files a/root/portfolio/mmm/media: image$png.png and /dev/null differ diff --git a/root/portfolio/playreactive/media: image$png.png b/root/portfolio/playreactive/media: image$png.png deleted file mode 100644 index 6bb41b3..0000000 Binary files a/root/portfolio/playreactive/media: image$png.png and /dev/null differ diff --git a/root/portfolio/rise/media: image$png.png b/root/portfolio/rise/media: image$png.png deleted file mode 100644 index b33cc13..0000000 Binary files a/root/portfolio/rise/media: image$png.png and /dev/null differ diff --git a/root/portfolio/spline/media: image$png.png b/root/portfolio/spline/media: image$png.png deleted file mode 100644 index d4f3125..0000000 Binary files a/root/portfolio/spline/media: image$png.png and /dev/null differ diff --git a/root/portfolio/text$moonscript -> mmm$dom.moon b/root/portfolio/text$moonscript -> mmm$dom.moon deleted file mode 100644 index 563fb2a..0000000 --- a/root/portfolio/text$moonscript -> mmm$dom.moon +++ /dev/null @@ -1,439 +0,0 @@ -import ReactiveVar, tohtml, text, elements from require 'mmm.component' -import article, a, b, span, video, img, h1, div, p, ul, li, br from elements -import embed, link_to from (require 'mmm.mmmfs.util') elements - -embed_img = (src) -> (style) -> img :src, :style -embed_vid = (src) -> (style) -> video autoplay: true, loop: true, muted: true, :src, :style - -import artistic, game, js, lua, shader, hardware, tool, collab, professional, cs, cpp from setmetatable {}, __index: (t, k) -> k - -padded_ul = (tbl) -> - ul with tbl - .style = padding: '0 2rem 0.5rem' - -projects = { - { - name: 'Spline' - desc: 'Full-Stack Development, Web & App' - extra: 'September 2020 - ongoing' - content: padded_ul { - li { - text 'graphics programming' - ul { - li text 'mesh generation' - li text 'parametric primitives' - li text 'geometry datastructures' - } - } - li text 'front-end development' - li text 'migration to TS and module system' - } - href: 'https://spline.design' - media: (style) -> - icon = (embed_img '/portfolio/spline/media:image/png') { - 'object-fit': 'contain' - 'width': '100%' - 'height': '100%' - } - style.position = 'relative' - style.padding = '2em' - style.background = '#232323' - style.overflow = 'hidden' - div icon, :style - tags: :professional, :js, :tool, :shader - } - { - name: 'Vectronom / Ludopium' - desc: 'Technical Artist, Game Development' - extra: 'July 2018 - December 2019' - content: padded_ul { - li text 'Unity/C# development (gameplay, UI, tools)' - li { - text 'backend for storing and sharing UGC across platforms' - ul { - li text 'SQL-backed storage of user-created levels' - li text 'implemented in clojure with clojure-ring' - li text 'integration with Steam and Nintendo services' - } - } - li { - text 'development of tech for showcase booths' - ul { - li text 'realtime speedrunning leaderboard (node, react)' - li text 'custom RGB LED driver and lettering' - } - } - li text 'porting to Nintendo Switch, Android, iOS, tvOS' - li text 'HLSL shader palette system' - } - href: 'https://vectronom.arte.tv' - media: embed_vid '/portfolio/vectronom/media:video/webm' - tags: :cs, :professional, :js, :shader, :game - } - { - name: 'Harold Halibut / Slow Bros' - desc: 'Tool & Game Development' - extra: 'April 2019 - December 2020' - content: padded_ul { - li { - text 'Unity/C# development' - ul { - li text 'developed multiple mini-games and interactions' - } - } - li text 'tool development' - li text 'shader programming' - li text 'porting (various consoles)' - } - href: 'http://haroldhalibut.com/' - media: embed_img '/portfolio/harold-halibut/media:image/png' - tags: :cs, :professional, :game - } - { - name: 'Earthrise One / Playreactive' - desc: 'Electronics Design, Escape Room Gadgets' - extra: 'September - December 2018 (consulting)' - content: padded_ul { - li text 'developed and implemented circuits for various portable and fixed devices in an escape room' - li { - text 'interfaced MCUs with various I/O devices' - ul { - li text 'controllable LED lighting' - li text 'maglocks' - li text 'piezo buzzers' - } - } - } - href: 'https://www.playreactive.com/earthrise-one' - media: embed_img '/portfolio/playreactive/media:image/png' - tags: :hardware, :professional, :game - } - { - name: 'rise technologies' - desc: 'Full-Stack Development, Web & App' - extra: 'April 2016 - April 2019' - content: padded_ul { - li text 'front-end development (react, material-ui)' - li { - text 'back-end development', - ul { - li text 'main application (meteor.js, node, MongoDB)' - li text 'microservice architecture (node, RabbitMQ)' - li text 'notification handling & delivery (APN, FCM)' - } - } - li text 'mobile development' - li { - text 'webRTC conferencing (janus-gateway)' - ul { - li text 'contributed C patches reinforcing the communication security for our needs' - li text 'implemented client-side logic' - li text 'implemented gateway orchestration' - } - } - li { - text 'dev-ops' - ul { - li text 'designed and implemented a custom CI system' - li text 'designed deployment infrastructure on MS Azure (docker, docker-compose)' - li text 'supervised migration from MS Azure to Amazon AWS' - } - } - } - href: 'https://rise.tech' - media: embed_img '/portfolio/rise/media:image/png' - tags: :professional, :js, :tool - } - { - name: 'ForChange Reserach Fund' - desc: 'Game Design and Development' - extra: 'March - June 2017 (consulting)' - content: padded_ul { - li { - text "designed 'Lorem Ipsum' together with two research scientists" - ul { - li text 'design goal was to communicate their research findings' - li text 'created a paper prototype' - li text 'designed a 4-player social game about truth and perspectives' - } - } - li { - text 'developed the game as a web application' - ul { - li text 'front-end using react' - li text 'back-end hosts game sessions via WebSockets' - li text 'joining games via link or QR-code scanning (in-app)' - li text 'gameplay implemented in immutable/functional-style' - } - } - } - href: 'https://loremipsum.s-ol.nu/' - media: embed_img '/portfolio/lorem_ipsum/media:image/jpeg' - tags: :professional, :js, :collab, :game - } - - - { - name: '0xC.pad' - desc: 'a hexagonal macropad' - entries: { - 'custom designed and machined keycaps' - 'per-key RGB backlighting' - 'low-profile mechanical keyswitches' - 'machined aluminum case' - 'ESD-protected USB-C port' - 'ATMega32U2 MCU with QMK firmware support' - } - href: 'https://docs.google.com/forms/d/e/1FAIpQLSccvUj4WobsxLP0yTdObMYbdXgTbWaAEnlu7WoOhmo262PaQA/viewform' - media: embed_img '/portfolio/hex-pad/media:image/jpeg' - tags: :hardware, :tool - } - { - name: 'alv' - desc: 'an innovative realtime programming language' - entries: { - 'Lisp syntax, dataflow semantics' - 'designed to be edited while running' - 'whole program is reloaded on evaluation, but state is guaranteed to be retained' - 'Atom plugin for realtime state visualisation' - 'integrates with soft- & hardware for performances (MIDI, OSC, SuperCollider)' - } - href: 'https://alv.s-ol.nu/master/' - media: embed_vid '/portfolio/alv/media:video/mp4' - tags: :tool, :lua, :javascript - } - { - name: 'btrktrl' - desc: 'a custom MIDI/OSC control surface' - entries: { - 'encoders with capacitive touch and RGB feedback' - 'custom PCBs based on iCE40 FPGAs' - 'motherboard with Arduino MCU' - 'communication via OSC/USB' - 'individually programmable daughterboards' - } - href: '/projects/btrktrl/' - media: embed_img '/projects/btrktrl/pcb_glamour_top/:image/jpeg' - tags: :hardware, :tool, :cpp - } - { - name: 'VJmidiKit' - desc: 'a tool for MIDI-reactive visuals' - entries: { - 'GLSL shader livecoding' - 'block-based language for MIDI-music reactivity' - 'implemented in openFrameworks/C++' - } - href: '/projects/VJmidiKit/' - media: embed_vid '/portfolio/VJmidiKit/media:video/mp4' - tags: :tool, :cpp, :shader - } --- { --- name: 'IYNX' --- desc: 'a narrative, tangible, physical puzzle incorporating digital elements' --- entries: { --- 'powered by a raspberry pi 3 and two arduino nanos' --- 'touch-panel UI and control software with node, electron and react' --- 'interfaces with analog potentiometers, keypad matrix, switches' --- } --- href: '/games/IYNX/' --- media: embed_img '/games/IYNX/pictures/ui_menu/:image/jpeg' --- tags: :collab, :game, :js, :hardware --- } - { - name: 'Plonat Atek' - desc: 'a sound-only breakout game, displayable on an oscilloscope' - entries: { - 'uses stereo sound to draw visuals on an oscilloscope' - 'programmed in PureData' - 'runs on a Raspberry Pi Zero in a custom case with hardware controls' - "1st place in Innovation, LudumDare 38 Compo" - } - href: '/games/plonat_atek/' - media: embed_img '/games/plonat_atek/pictures/amaze/:image/jpeg' - tags: :artistic, :game, :hardware - } - { - name: 'tre telefoni' - desc: 'an experimental interactive installation piece about communication' - content: padded_ul { - li text 'realtime voice chat between three participants, in an unusual configuration' - li { - text 'web-based prototype' - ul { - li text 'realized using webRTC, react' - li text '3-player matchmaking' - } - } - } - href: '/projects/iii-telefoni/' - media: embed_img '/projects/iii-telefoni/heads/:image/jpeg' - tags: :artistic, :game, :js - } --- { --- name: '1u matrix mixer' --- desc: 'a eurorack module' --- entries: { --- "embedded programming for a Eurorack module" --- "C++, targetting Teensy 3.5" --- "8 encoders with RGB lighting" --- "digtally controls a 8x8 switching matrix and 8 channels of volume modulation" --- } --- media: embed_img '/portfolio/1u-mod/media:image/jpeg' --- tags: :collab, :hardware, :cpp --- } - { - name: 'mmm' - desc: 'an experimental file-system/CMS/digital working space' - content: padded_ul { - style: padding: '0 2em 1em' - li text 'powers this website' - li text 'implemented in Lua/MoonScript' - li text 'innovative type-coercion system' - li text 'client/server polymorphic UI framework' - li text 'built-in server-side rendering and interactive editing support' - } - href: '/research/mmmfs/' - media: embed_img '/portfolio/mmm/media:image/png' - tags: :tool, :lua - } - { - name: 'Toy Box Orchestra' - desc: 'an interactive audio-visual performance project' - entries: { - "circuit bent childrens' toys" - "developed a realtime video effect inspired by analog video synthesisers in openframeworks and GLSL" - "interactive MIDI controls for the effect for performing it on stage" - } - href: 'https://chimpanzeebukkaque.bandcamp.com/releases' - media: embed_img '/portfolio/visualist/media:image/jpeg' - tags: :collab, :artistic, :cpp, :hardware, :shader - } - } - -project_row = (tag, exclude) -> - with ul style: display: 'flex', 'flex-wrap': 'wrap', 'align-items': 'top' - for pp in *projects - continue if tag and not pp.tags[tag] - continue if not tag and exclude and pp.tags[exclude] - - \append li { - style: - 'border-radius': '6px' - display: 'flex' - 'flex-direction': 'column' - width: '22rem' - margin: '0.5em' - 'padding-bottom': '0.5em' - background: 'var(--gray-bright)' - overflow: 'hidden' - 'font-size': '0.9em' - - a { - style: - display: 'block' - position: 'relative' - color: 'var(--gray-bright)' - background: 'var(--gray-dark)' - filter: 'none' - - href: pp.href - - pp.media { - width: '100%' - height: '13rem' - background: 'var(--gray-bright)' - 'box-sizing': 'border-box' - 'object-fit': 'cover' - } - - h1 pp.name, style: - padding: '0.2rem 1rem' - } - - if pp.extra - div pp.extra, style: - background: 'var(--gray-darker)' - color: 'var(--gray-bright)' - padding: '0.2em 1rem' - - p (text pp.desc), style: 'padding': '0 1rem' - text ' ' - pp.content or padded_ul for line in *pp.entries - li text line - } - -tohtml with article! - filter = ReactiveVar! - - taglink = (label, tag=label) -> - a label, { - href: '#' - onclick: (e) => - e\preventDefault! - filter\transform (old) -> if old == tag then nil else tag - } - - \append p "I have worked with a wide range of technologies and frameworks. ", - "Below you can find a breakdown of the ones I am proficient in.", br!, - "You can click on any of the tags marked in bold to filter the projects below accordingly." - - \append ul { - li { - "spoken languages" - ul { - li "excellent english" - li "native german" - li "good italian" - } - } - li { - "software programming" - ul { - li (taglink "JavaScript", js), ": react, nodejs, electron, meteor" - li (taglink "C and C++", cpp), ": openFrameworks, intermediate openGL" - li (taglink "GLSL and HLSL", shader), ": animated shaders, raymarching, SDFs" - li taglink "C# and Unity", cs - li taglink "Lua/MoonScript", lua - li "Python" - } - } - li { - (taglink hardware), " and embedded programming" - ul { - li "PCB Design" - li text "embedded programming (C++) and interfacing" - li "FPGA development (Verilog)" - } - } - li { - "other" - ul { - li "Linux" - li "docker, docker-compose" - li "HTML, CSS" - } - } - } - - \append with h1 "selected projects", style: 'margin-top': '1em' - \append filter\map (tag) -> - return unless tag - span { - style: - 'font-size': '0.7em' - 'font-weight': 'normal' - 'margin-left': '2em' - - "showing only " - b text tag - " projects - " - a "reset filter", href: '#', style: { 'font-weight': 'bold' }, onclick: (e) => - e\preventDefault! - filter\set! - } - \append filter\map => project_row @, professional - - \append h1 "professional work", style: 'margin-top': '1em' - \append p "I have worked for or with the following companies and organisations in the past:" - \append project_row professional diff --git a/root/portfolio/vectronom/media: video$webm.webm b/root/portfolio/vectronom/media: video$webm.webm deleted file mode 100644 index 46b6596..0000000 Binary files a/root/portfolio/vectronom/media: video$webm.webm and /dev/null differ diff --git a/root/portfolio/visualist/media: image$jpeg.jpg b/root/portfolio/visualist/media: image$jpeg.jpg deleted file mode 100644 index 17dc06d..0000000 Binary files a/root/portfolio/visualist/media: image$jpeg.jpg and /dev/null differ -- cgit v1.2.3