GithubHelp home page GithubHelp logo

Hi everyone 👋

I'm a research scientist developing software and numerical algorithms for simulation, control, and design of complex physical systems. My interests range from classical numerical methods to data-driven techniques and machine learning, with a focus on software engineering and high-performance computing. List of publications. Currently working at Harvard University in Cambridge, MA, United States.

You can see examples of my work at pkarnakov.com, reach me on social media LinkedIn, Twitter/X, and watch some of my simulation videos on YouTube.

Research Projects

ODIL (Optimizing a DIscrete Loss) is a method for solving inverse problems for partial differential equations, which is orders of magnitude faster than PINN (physics-informed neural networks).

Demos
Poisson Wave Heat

Distributed multiphysics solver for simulating multiphase flow with bubbles and electrochemical reactors. The solver performed the largest simulations of foaming by breakup and mixing of air in water.

Videos and demos
Foaming Electrolysis Drops Gallery

Other Projects

Automatic differentiation framework in C++ with GPU support through OpenCL.

Story and examples This project made me realize that some machine learning applications that would normally rely on TensorFlow/JAX/PyTorch can actually be implemented in pure C++ from scratch in a reasonable amount of time (several days). And for small problems on a CPU it also works 10x times faster than the corresponding Python+TensorFlow implementation. The ODIL demos above use this code to run in WebAssembly. Examples of constructed computational graphs:

Game with particles and portals. Written in C++ with OpenGL and SDL2. There is a web version.

Description and screenshots You can connect particles to create ropes, run them through portals, and manipulate with the mouse. The accel button couples the gravity vector with measurements from an accelerometer (if supported).
Native Web

Visual materials for a class on numerical methods that I lectured in 2022.

Removing day-night cycle from videos using PCA. Code | Slides

pcavideo_paris.mp4 pcavideo_paris_first3.mp4 pcavideo_paris_zero3.mp4
pcavideo_vietnam.mp4 pcavideo_vietnam_first3.mp4 pcavideo_vietnam_zero3.mp4
pcavideo_sunrise.mp4 pcavideo_sunrise_first3.mp4 pcavideo_sunrise_zero3.mp4

Sound of the wave equation. Code | Slide

The forcing signal excites certain frequencies of an oscillator. Videos with (loud) sound:

Forcing Response
wave_force.webm wave_signal.webm

Prototype operating system in x86 assembly.

Story and screencast I started this project back in 2008 for a school competition in Russia's space capital Korolyev. The plan was to push Windows out of the market, but it didn't work out.

tinyos.mp4

Petr Karnakov's Projects

am205 icon am205

Course material for APMTH 205 (numerical methods) at Harvard SEAS lectured in Fall 2022

autodiff icon autodiff

Automatic differentiation in C++ with GPU support and applications to PDEs solved by ODIL

geodataviz-toolkit icon geodataviz-toolkit

The GeoDataViz Toolkit is a set of resources that will help you communicate your data effectively through the design of compelling visuals. In this repository we are sharing resources, assets and other useful links.

ptoy icon ptoy

Particle toy with bonds and portals

tinyos icon tinyos

Prototype operating system in x86 assembly

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.