• visste du?

    Visste du att slakterier betalar producenten 0,5 - 3,5 kr/kg extra för kravmärkt nötkött, men att kunden i butik betalar en tio gånger större prisskillnad?

     

    Visste du att budgeten för nationellt vägunderhåll inte räcker för att upprätthålla nuvarande vägkvalité?

     

    Visste du att antalet barn per kvinna sjunker globalt såväl som nationellt, men att det totala antalet barn i många landsbygdskommuner inte väntas sjunka (enligt befolkningsframskrivningar från SCB) pga att barnfamiljer flyttar ut från större städer.

     

    Visste du att datan som lagras i elsparkcyklar kan användas för vägytemätningar av små gator?

     

    Visste du att upprepade mätningar med låg upplösning kan kombineras för att skapa tidsserier med högre upplösning även när mätningarna sker åratal ifrån varandra?

    salbo.ai:s vision är att bidra till ett hållbart samhälle genom att skapa datadrivet, faktabaserat beslutsstöd som gör det möjligt för våra gemensamma tillgångar att hålla längre och användas mer effektivt. Med en unik kompetens inom avancerad analys och artificiell intelligens tillämpad på transport, infrastruktur och byggnation skapar salbo.ai handlingsbara insikter från stora och små datamängder.

  • kontakt

    Vad skulle vi kunna räkna ut härnäst?

  • Number crunching and stuff

    Here are some other projects I've worked on:

    broken image

    Alignment despite errors

    An algorithm to deal with highly segmented data with variable sample rate, spatially correlated and uncorrelated measurement errors, convergence to true locations, and consistency over time. The practical feasibility of the algorithm is demonstrated on empirical track geometry measurement data from the British railway network.

     

    Continuous wavelet transform of EEG data from a rat

    Machine learning

    Signal processing on EEG data

    About finding potential electroencephalography parameters for identifying clinical depression. My report describes the process of using visualisation in Freq to understand the shape of the signal which helps with interpreting results and helps with the development of model parameters. The project also improved Freq to cope with the size of the weeklong EEG datasets.

    Pikkoserver Architecture

    Massive multiplayer server architecture

    I designed the server architecture of a game winning a Guinness World Record for the largest online first-person shooter battle (MMOFPS). The video shows the server architecture in action.

     

    See this other video for more details on the server architecture.

    Freq - Visualisation of music

    Freq

    Shaders, big data, signal processing, multicore processing, C++, Cross platform, Qt and QML

    Freq is a modern approach to frequency analysis. It is a cross-platform application that makes it easy to explore the contents of long and detailed time-series.

    sevendeadlysins.js

    WebGL, javascript and shaders

    I made an invitation demo to the computer festival Birdie in Uppsala, Sweden. It is a javascript demo where most effects are rendered in WebGL through ray marching written in the OpenGL Shader Language. You can run sevendeadlysins.js in your own browser.

     

    I'm also a member of the Birdie Scene Crew who organises the creative competions at Birdie.

    Electroencephalography

    Manycore processing

    GPGPU Computing, Big Data, Internet of things, Realtime Cloud Computing, Heterogeneous Computing

    Many of the projects I've worked on have been about pushing through hardware limitations. Sometimes I design a brand new architecture to juggle tons of simultaneous communication channels. Other times I redesign the code flow to better suit the underlying architecture and carefully consider bandwidth versus latency to decide what to precompute and what to recompute, where in one assignment I was able to deliver a 3000x speed-up. Yet other times I use mathematical transformations to find alternate ways of computing the same results with fewer operations.

    C++ runtime backtrace

    C++ exception backtraces

    Runtime info

    My Backtrace class wraps compiler specific calls for traversing the call stack and translating it to symbol names. It is typically used together with boost exceptions or when catching segmentation fault signals in order to log the complete call stack upon unexpected behaviour.

    Screenshot of a opening a javascript demo

    index.png.html

    A javascript-in-png trick, ray marching and metaballs.

    I did my own implementation of a neat png trick. It uses the .png image format to compress the source code of a small javascript demo. The final source code was 7 kB, which was minified to 4 kB and then compressed with png to a final self-contained demo size of only 2 kB.

     

    The animation is a webgl shader with a procedurally generated annoying tune. The whole javascript-in-png trick might not work in all browsers.

    Using a C++ smart pointer monitor that guards objects from being used simultaneously by multiple threads.

    shared_state<T>

    C++ smart pointer and mutex monitor

    shared_state<T> is a smart pointer in C++ that acts as an object monitor. For objects shared between threads shared_state ensures that the object is always protected with mutually exclusive access while being syntactically similar to a regular C pointer.

     

  • Event storming workshop...

    ... är ett effektivt verktyg salbo.ai kan applicera för att (i tur och ordning)

    1. identifiera flöden,

    2. hitta en gemensam terminologi,

    3. identifiera flaskhalsar, och

    4. hitta nya vägar eller automatisera där det passar.

     

    salbo.ai är nyfikna på om du upplever att din

    organisation har några frustrerande flaskhalsar?