HN user

erkaman

396 karma
Posts21
Comments46
View on HN
www.youtube.com 8y ago

Show HN: I implemented some colorful 2D fluid simulations[video]

erkaman
3pts1
erkaman.github.io 8y ago

A list of questions common when interviewing for a job as a Graphics Programmer

erkaman
16pts3
erkaman.github.io 8y ago

Show HN: An algorithm for smoothly filling holes in 3D meshes

erkaman
104pts18
erkaman.github.io 8y ago

Show HN: I implemented seamless copy and paste of images, and wrote a tutorial

erkaman
123pts11
mikolalysenko.github.io 8y ago

Show HN: [WebGL Demo] Interactive Mesh Deformation in JavaScript

erkaman
2pts3
github.com 9y ago

Show HN: A Minimal Code Example of Using Vulkan for Computations on the GPU

erkaman
68pts11
erkaman.github.io 9y ago

Show HN: [WebGL Demo] Indirect Lighting Using Reflective Shadow Maps

erkaman
6pts1
www.youtube.com 9y ago

Show HN: I implemented Deferred Shading

erkaman
4pts1
erkaman.github.io 9y ago

Automatic UV Mapping Using Harmonic Mapping: A Tutorial and Introduction

erkaman
3pts1
github.com 9y ago

Show HN: I tried generating clouds with vector graphics

erkaman
12pts2
github.com 9y ago

Show HN: I Implemented Automatic UV Mapping

erkaman
21pts2
erkaman.github.io 9y ago

Show HN: GPU-Accelerated Digit Recognition with WebGL

erkaman
135pts57
erkaman.github.io 9y ago

I Implemented GPU-Accelerated Digit Recognition with WebGL

erkaman
7pts3
mikolalysenko.github.io 9y ago

I implemented fast parallel reduction on the GPU with WebGL

erkaman
3pts1
mikolalysenko.github.io 9y ago

Show HN: I Implemented Shadow Volumes in WebGL

erkaman
1pts1
mikolalysenko.github.io 9y ago

Show HN: Planar Reflections in WebGL

erkaman
1pts1
erkaman.github.io 9y ago

Show HN: A simple infinite world in WebGL

erkaman
181pts56
github.com 10y ago

Show HN: 2D Liquid Simulation in WebGL

erkaman
3pts0
github.com 10y ago

2D Liquid Simulation in WebGL

erkaman
3pts1
erkaman.github.io 10y ago

Implementing Run-length encoding in CUDA

erkaman
2pts1
erkaman.github.io 10y ago

Making Faster Fragment Shaders by Using Tessellation Shaders

erkaman
5pts0

Source code is here: https://github.com/Erkaman/fluid_sim

this is some flashy fluid simulations made using the techniques described in the article "Fast Fluid Dynamics Simulation on the GPU".

The code is minimalistic and is written in only ~1000LOC of C++, and uses only OpenGL and no frameworks whatsoever, so the code should be pretty readable.

Finally, note that the primary focus was on making flashy simulations, and not on physical realism.

Some months ago, I interviewed for a job as a junior graphics programmer for various game companies, in order to break into the industry. Since computer graphics is a very niche field, there is not very much information out there on what questions are common during an interview for such a job. So I decided to compile this little list of common questions, and to write some general advice about how you can prepare for the interview. Hope someone finds this useful. :)

global refinement and unrefinement steps are unnecessary, yes. It just makes the implementation of the demo so much easier. It is possible to only refine the patch, and then fuse the patch with the original mesh, and then global refinement is not necessary. But this is actually surprisingly tricky to robustly implement in practice, and did not implement it mostly due to time restrictions, and to keep the demo code short and readable.

I agree with you mostly. I just think that this is an interesting usage of variational calculus, which is not that well understood by other programmers, so I wanted to write this article about this, in order to introduce other programmers to the topic.

And also because I thought the literature about this out there wasn't really that readable, and I always think there is value in writing expository texts like this.

Hi, this is a demo that me and my friend have worked on for some weeks. Note that it takes a while to load the demo

In case the demo doesn't run, I have prepared a video of it here(https://www.youtube.com/watch?v=1bykYClXkRg)

This is a demo that implements laplacian deformation in Javascript. Laplacian deformation is a technique that allows you to deform an arbitrary mesh as if it were a cloth-like material. In the demo, you can grab handles on the mesh, and drag them. The vertices of the rest of the mesh are then smoothly updated, resulting in a deformation. The deformations produced by this technique tend to look natural, since the general shape of the mesh is preserved. This kind of technique is useful in 3D-modeling software.

Hello, I'm the writer of this demo. Because this is WebGL, this demo may or may not run, so here(https://github.com/Erkaman/webgl-rsm) you can see an image of what it should look like.

This is an implementation of Indirect Lighting using Reflective Shadow Maps(http://www.klayge.org/material/3_12/GI/rsm.pdf). This technique results in some nice color bleeding effects, which can be seen in the red glow on Lucy(statue) and the blue glow on the cute rabbit. This is light that has bounced from the colored walls.

The implementation details can be found in the repo: https://github.com/Erkaman/webgl-rsm#implementation-details

I'm the author. The source code is here: https://github.com/Erkaman/cute-deferred-shading

This is a cute little implementation of normal deferred shading. The focus of this implementation was readability and brevity, so that others can learn from the code. The entire renderer is only about 1400 lines of C++ code. Note that there are probably ways in which the implementation can be made faster, but such optimizations were not performed to keep things brief, and readable.

Hello, I'm the author. Some weeks ago, I posted here a reference implementation of automatic UV-mapping with harmonic mapping(https://github.com/Erkaman/auto_uv_map). I promised that I would write an article that explains the mathematics of the source code, and here it is.

I wanted to write this article because all the existing literature on this topic is pretty difficult, and I wanted to see if I could solve that issue by writing my own article about it. But as I was writing it, I discovered that this stuff is pretty damn hard to explain, and it made me sort of understand why all the existing literature is hard to read.

But my hope is that this article at least succeeds in explaining the intuition behind the technique. If there's anything that is not clear in the article, please ask here, and I will attempt to explain.

Hello, I am the author. This is a reference implementation of automatic UV mapping using Harmonic Mapping. Because the existing literature on this topic is so hard to understand, it took me quite a while to figure out how to implement this. Because of that, I thought I'd publish a reference implementation of this technique, so that other who want to do automatic UV mapping don't have to go through all the pain that I did. To my knowledge, this is the first readable reference implementation of Harmonic Mapping. If you search quite a bit, you can find other implementations of Harmonic Mapping, but they are messy, poorly commented, and hard to understand. In difference to these, my implementation aims to be readable, and easy to integrate into other projects. Hopefully, I have achieved this goal.

But unfortunately, if you try and read the source code of my implementation, you may find that it is hard to understand why it actually works. Unless you grasp the underlying mathematics, it is probably difficult to understand the code. That is why I am currently working on writing an article that explains the underlying mathematics. I shall publish that article here once it is done. Until then, please be patient.

The original MNIST training data made the assumption that the digits are not flipped. But you could solve it by creating more training data by flipping the original digits. But then you suddenly end up with an awful lot of data, and then the training process would take days, literally.

I had plans to do that, but that means implementing all of TensorFlows functionality in Javascript, which is a huge pain and lots of work. But if we restricted all networks to a strict subset of TensorFlow, it can be done, I think.