Sun, 29 Sep 2024 18:34:54 GMT https://marekfiser.com Marek's blog Marek's blog about game dev, computer graphics, programming, and fractals! Marek Fiser blog@marekfiser.com Is 16.7 million colors enough? Mon, 05 Jan 2015 https://marekfiser.com/blog/is-16m-colors-enough Marek Fiser blog@marekfiser.com Majority of our devices today can display 16.7 million colors. This may sound as a lot but sometimes human eye can notice a difference between two neighboring colors. I have encountered this problem while creating some fractal images. The solution to the limitation is usage of dithering. This article describes the problem and presents a simple solution. Mausr - Marek's Unicode Symbols Recognizer Mon, 01 Dec 2014 https://marekfiser.com/projects/mausr-mareks-unicode-symbols-recognizer Marek Fiser blog@marekfiser.com Mausr is a library and web interface that performs unicode symbols recognition from hand drawn input using simple neural network. The symbol recognition library is written from scratch without any ML library and it implements back-propagation learning algorithm as well as basic non-linear optimization algorithms such as gradient descent and iRprop. Internship at NVIDIA 2014 Mon, 01 Sep 2014 https://marekfiser.com/blog/internship-at-NVIDIA-2014 Marek Fiser blog@marekfiser.com I spent summer of 2014 as an intern at the NVIDIA. That was quite different experience than the last year in the Google. This article describes all the aspects of being an intern in the Silicon Valley including tips how to prepare for such adventure. A big part of the summer was a road trip from Indiana to California and back and I will talk about it as well. After I returned everybody keep asking me: What is better, NVIDIA or Google? You can find out my personal opinion in the post! Mamex - Marek's Mandelbrot explorer Fri, 01 Aug 2014 https://marekfiser.com/projects/mamex-mareks-mandelbrot-explorer Marek Fiser blog@marekfiser.com Mamex is a Mandelbrot set rendering library written in C# and supports arbitrary precision (provided by GMP) for infinite zoom. The explorer can visualize Mandelbrot and Julia sets and has many additional features such as interactive color gradient editor, projections support, and batch rendering. Custom anti-aliasing algorithm, sharpening, and color dithering algorithms yields beautiful results. Internship at Google 2013 Sun, 01 Sep 2013 https://marekfiser.com/blog/internship-at-Google-2013 Marek Fiser blog@marekfiser.com In the summer of 2013 I had an opportunity to be a part of the Google for whole 14 weeks. This article tells the whole story starting from the application process describing all my great experience. I was interning at Google Headquarters in sunny California and I was member of Google Research team. This article is accompanied with around 100 images from Google campus and surrounding areas. Realtime visualization of 3D vector fields using CUDA Mon, 01 Apr 2013 https://marekfiser.com/projects/realtime-visualization-of-3D-vector-fields-using-CUDA Marek Fiser blog@marekfiser.com This project demonstrates visualization techniques like glyphs, stream lines, stream tubes, and stream surfaces — all done in real time. The key is RK4 integrator implemented using CUDA that is uses very fast texture lookup functions to access a vector field. This article contains more than 100 images and figures, commented code snippets, and source code available for download. Conway's Game of Life on GPU using CUDA Fri, 01 Mar 2013 https://marekfiser.com/projects/conways-game-of-life-on-gpu-using-cuda Marek Fiser blog@marekfiser.com This project compares performance of CPU and GPU in evaluation of famous Conway's Game of Life. The performance was tested on three different implementations. The most sophisticated version of the algorithm on GPU stores data in one bit-per-cell array and leads to speed-up of 480x compared to serial CPU algorithm. The best implementation for CPU turned out to be lookup-table approach leading to 60x speedups over serial CPU. The report contains detailed explanation of used algorithms, measurements, and code of whole project for download. Random faults algorithm applied to sphere on GPU using CUDA Fri, 01 Feb 2013 https://marekfiser.com/projects/random-faults-algorithm-applied-to-sphere-on-gpu-using-cuda Marek Fiser blog@marekfiser.com Comparison of performance of CPU and GPU implementations of random faults algorithm for random terrain generation. Speedup of GPU over CPU is over 700x. Project uses shared VBO's to avoid CPU-GPU data transfer which makes it an interactive experience. Maraytr - Marek's Ray-tracer Tue, 22 Jan 2013 https://marekfiser.com/projects/maraytr-mareks-ray-tracer Marek Fiser blog@marekfiser.com Maraytr is a ray-tracer written with high focus on algorithms and data structures rather than on performance. I decided to make it to get deeper understanding of theory and math behind ray-tracing. Also, ray-tracing is fun! The core was written in four days in C# without any third-party libraries. The scene is represented as Constructive Solid Geometry (CSG) and supported primitives are sphere, cube, and plane. It is possible to do basic boolean operations like union, intersection, subtraction, or xor. Growing HPCG logo Sun, 02 Dec 2012 https://marekfiser.com/projects/growing-hpcg-logo Marek Fiser blog@marekfiser.com Video of simulation of growth of simple trees restricted by environment created using L-systems. This animation was made to demonstrate power of my L-system framework Malsys and to have fun with L-systems. Whole simulation is one L-system with sub-L-systems for leaves and blooms.