<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.9.2">Jekyll</generator><link href="https://benmash.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://benmash.github.io/" rel="alternate" type="text/html" /><updated>2022-10-18T00:50:45+00:00</updated><id>https://benmash.github.io/feed.xml</id><title type="html">Ben Mash</title><subtitle>Welcome to my website! I'm a second year Computer Science major at  Northeastern University in Boston. </subtitle><author><name>Ben Mash</name><email>mash.be@northeastern.edu</email></author><entry><title type="html">Numpy Path Tracer</title><link href="https://benmash.github.io/projects/pathtracer/" rel="alternate" type="text/html" title="Numpy Path Tracer" /><published>2022-10-17T00:00:00+00:00</published><updated>2022-10-17T00:00:00+00:00</updated><id>https://benmash.github.io/projects/pathtracer</id><content type="html" xml:base="https://benmash.github.io/projects/pathtracer/">&lt;p&gt;I’ve started working on a pathtracer written in Python with NumPy. My machine learning class this semester expects good Python experience so I decided to start a project involving linear algebra to give me some practice. It’s a pretty interesting to me since I’ve done a few things with pathtracers in the past, but since they were computed on the GPU using shaders my code only had to compute the color of one pixel at a time. Using NumPy, I’m manipulating the entire matrix of pixels and their corresponding rays at the same time, which is more or less the opposite approach. It’s definitely less efficient, given GPUs are literally built to do this sort of thing, but this approach does allow for some techniques that don’t work as well in parallel. Code is &lt;a href=&quot;https://github.com/benmash/numpy-pathtracer&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/purple.png&quot; alt=&quot;Depth Image&quot; /&gt;
&lt;em&gt;Example Image of some spheres&lt;/em&gt;&lt;/p&gt;</content><author><name>Ben Mash</name><email>mash.be@northeastern.edu</email></author><category term="projects" /><summary type="html">I’ve started working on a pathtracer written in Python with NumPy. My machine learning class this semester expects good Python experience so I decided to start a project involving linear algebra to give me some practice. It’s a pretty interesting to me since I’ve done a few things with pathtracers in the past, but since they were computed on the GPU using shaders my code only had to compute the color of one pixel at a time. Using NumPy, I’m manipulating the entire matrix of pixels and their corresponding rays at the same time, which is more or less the opposite approach. It’s definitely less efficient, given GPUs are literally built to do this sort of thing, but this approach does allow for some techniques that don’t work as well in parallel. Code is here.</summary></entry><entry><title type="html">Generative Art</title><link href="https://benmash.github.io/projects/generative/" rel="alternate" type="text/html" title="Generative Art" /><published>2022-08-22T00:00:00+00:00</published><updated>2022-08-22T00:00:00+00:00</updated><id>https://benmash.github.io/projects/generative</id><content type="html" xml:base="https://benmash.github.io/projects/generative/">&lt;p&gt;I’m really interested in generative art, and I’ve created a good deal of it over the past few years. Most of the time I use &lt;a href=&quot;https://processing.org&quot;&gt;Processing&lt;/a&gt;, which is an excellent and simple Java framework for creating quick visual sketches. It has a concise API and requires very little boilerplate code, so I find it easy to quickly iterate on ideas.&lt;/p&gt;

&lt;p&gt;Most of my Processing sketches are dumped in this git repo &lt;a href=&quot;https://github.com/benmash/gen-art&quot;&gt;benmash/gen-art&lt;/a&gt;&lt;/p&gt;</content><author><name>Ben Mash</name><email>mash.be@northeastern.edu</email></author><category term="projects" /><summary type="html">I’m really interested in generative art, and I’ve created a good deal of it over the past few years. Most of the time I use Processing, which is an excellent and simple Java framework for creating quick visual sketches. It has a concise API and requires very little boilerplate code, so I find it easy to quickly iterate on ideas.</summary></entry><entry><title type="html">3d Voronoi Tessellation</title><link href="https://benmash.github.io/projects/voronoi/" rel="alternate" type="text/html" title="3d Voronoi Tessellation" /><published>2022-08-20T00:00:00+00:00</published><updated>2022-08-20T00:00:00+00:00</updated><id>https://benmash.github.io/projects/voronoi</id><content type="html" xml:base="https://benmash.github.io/projects/voronoi/">&lt;p&gt;I had an idea for a project to create a rough simulation of mushroom growth using a graph based cellular automata. I needed a way to easily decide which cells should be neighbors and a way to transform the cells into a 3d triangle mesh to render. The Delaunay triangulation of the cells would work for discovering neighbors and taking its dual to get the Voronoi tessellation would work fine for rendering. I implemented the Bowyer-Watson algorithm in 3d in Javascript &lt;a href=&quot;https://github.com/benmash/Fungal3js&quot;&gt;here&lt;/a&gt;, but even after adding some heuristics and more appropriate data structures it didn’t run fast enough for what I wanted it to do, so I left it at that.&lt;/p&gt;</content><author><name>Ben Mash</name><email>mash.be@northeastern.edu</email></author><category term="projects" /><summary type="html">I had an idea for a project to create a rough simulation of mushroom growth using a graph based cellular automata. I needed a way to easily decide which cells should be neighbors and a way to transform the cells into a 3d triangle mesh to render. The Delaunay triangulation of the cells would work for discovering neighbors and taking its dual to get the Voronoi tessellation would work fine for rendering. I implemented the Bowyer-Watson algorithm in 3d in Javascript here, but even after adding some heuristics and more appropriate data structures it didn’t run fast enough for what I wanted it to do, so I left it at that.</summary></entry><entry><title type="html">Projects Page</title><link href="https://benmash.github.io/projects/projects/" rel="alternate" type="text/html" title="Projects Page" /><published>2022-08-19T00:00:00+00:00</published><updated>2022-08-19T00:00:00+00:00</updated><id>https://benmash.github.io/projects/projects</id><content type="html" xml:base="https://benmash.github.io/projects/projects/">&lt;p&gt;Test Post !&lt;/p&gt;</content><author><name>Ben Mash</name><email>mash.be@northeastern.edu</email></author><category term="projects" /><summary type="html">Test Post !</summary></entry></feed>