<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Posts on Garrett Hoofman</title><link>https://ghoofman.com/posts/</link><description>Recent content in Posts on Garrett Hoofman</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>© 2026 Garrett Hoofman</copyright><lastBuildDate>Thu, 25 Apr 2024 14:11:54 +0000</lastBuildDate><atom:link href="https://ghoofman.com/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>Maker Loop - Product Configurator</title><link>https://ghoofman.com/maker-loop-2/</link><pubDate>Thu, 25 Apr 2024 14:11:54 +0000</pubDate><guid>https://ghoofman.com/maker-loop-2/</guid><description>&lt;p&gt;I recently launched the Maker Loop website ( &lt;a href="https://makerloop.io/?ref=ghoofman.com" target="_blank" rel="noreferrer"&gt;https://makerloop.io&lt;/a&gt; ) now that I&amp;rsquo;m happy with the design. It utilizes Medusa.js as the headless CMS and uses Next.js for the storefront, and it&amp;rsquo;s all hosted on my home server within docker containers.&lt;/p&gt;
&lt;figure class="kg-card kg-image-card"&gt;
&lt;img src="https://ghoofman.com/images/posts/Cork2-1.png" class="kg-image" loading="lazy" sizes="(min-width: 720px) 720px" srcset="https://ghoofman.com/content/images/size/w600/2024/04/Cork2-1.png 600w, https://ghoofman.com/content/images/size/w1000/2024/04/Cork2-1.png 1000w, https://ghoofman.com/content/images/size/w1600/2024/04/Cork2-1.png 1600w, https://ghoofman.com/content/images/size/w2400/2024/04/Cork2-1.png 2400w" width="2000" height="1506" /&gt;
&lt;/figure&gt;
&lt;p&gt;The storefront is my first step towards selling some of my work. My first product is a Hex Wall Planter ( &lt;a href="https://makerloop.io/us/products/ml-hex-planter-mk-1?ref=ghoofman.com" target="_blank" rel="noreferrer"&gt;https://makerloop.io/us/products/ml-hex-planter-mk-1&lt;/a&gt; ) that uses a self wicking cotton to automatically water the plant. The intention is to purchase multiple of them and create a design on the wall. To help facilitate that I&amp;rsquo;ve created a configurator with each of the variations.&lt;/p&gt;</description></item><item><title>Making a CNC Machine with 3D Printing</title><link>https://ghoofman.com/cnc/</link><pubDate>Wed, 25 Oct 2023 17:10:27 +0000</pubDate><guid>https://ghoofman.com/cnc/</guid><description>&lt;p&gt;I want to make an Automated Lawn Mower, but it needs to be very solid to work and all I have is a 3D printer. Plastic isn&amp;rsquo;t going to cut it (heh). To create a solid enough structure I really need to make it with solid aluminum base. To create that I need a CNC machine.&lt;/p&gt;
&lt;p&gt;However, CNC machines cost a lot of money and are typically very large. I need it to fit in my 6&amp;rsquo; offset in my garage. That means, it&amp;rsquo;s time to build.&lt;/p&gt;</description></item><item><title>Camera Slider MK1</title><link>https://ghoofman.com/camera-slider-mk1/</link><pubDate>Mon, 28 Aug 2023 23:56:47 +0000</pubDate><guid>https://ghoofman.com/camera-slider-mk1/</guid><description>&lt;p&gt;I&amp;rsquo;m working on a CNC build but I want to make a video of the build. To get some practice and understanding of the process that goes into making a video like that I decided to make a side-side-project. And thus the Camera Slider MK1 was brought into existence.&lt;/p&gt;
&lt;p&gt;The two primary goals for this build: Use as many parts as I already have on hand and learn how to do the majority of the video creation process.&lt;/p&gt;</description></item><item><title>ProVizXR: Scalable AR &amp; VR Platform</title><link>https://ghoofman.com/provizxr/</link><pubDate>Mon, 17 Apr 2023 23:39:34 +0000</pubDate><guid>https://ghoofman.com/provizxr/</guid><description>&lt;p&gt;Virtual and augmented reality technologies are increasingly being used to create immersive experiences that engage audiences in new and exciting ways. However, creating these experiences can be challenging, requiring specialized software and technical expertise. That&amp;rsquo;s where ProVizXR comes in - a powerful, yet easy-to-use web-based AR and VR scene builder that simplifies the process of creating immersive experiences.&lt;/p&gt;
&lt;p&gt;ProVizXR offers native support for a range of devices, including Hololens, Magic Leap, Android, iOS, and Oculus. With its model import pipeline, you can optimize models for performance and create stunning, realistic environments. The integrated scene editor lets you easily add and manipulate objects and elements within your scene, while the no-code flow editor allows you to create custom logic without needing to write code.&lt;/p&gt;</description></item><item><title>GridShape: 3D Azure System Diagrams</title><link>https://ghoofman.com/gridshape/</link><pubDate>Mon, 02 Jan 2023 20:41:00 +0000</pubDate><guid>https://ghoofman.com/gridshape/</guid><description>&lt;p&gt;GridShape helps you visualize, monitor, and document your Azure systems in realtime. Designed with React Three Fiber in a node/typescript/sql stack.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://gridshape.io/?ref=ghoofman.com" target="_blank" rel="noreferrer"&gt;http://gridshape.io&lt;/a&gt;&lt;/p&gt;
&lt;figure class="kg-card kg-image-card"&gt;
&lt;img src="https://ghoofman.com/images/posts/Screenshot-2023-04-17-at-8.41.16-PM.png" class="kg-image" loading="lazy" sizes="(min-width: 720px) 720px" srcset="https://ghoofman.com/content/images/size/w600/2023/04/Screenshot-2023-04-17-at-8.41.16-PM.png 600w, https://ghoofman.com/content/images/size/w1000/2023/04/Screenshot-2023-04-17-at-8.41.16-PM.png 1000w, https://ghoofman.com/content/images/size/w1600/2023/04/Screenshot-2023-04-17-at-8.41.16-PM.png 1600w, https://ghoofman.com/content/images/size/w2400/2023/04/Screenshot-2023-04-17-at-8.41.16-PM.png 2400w" width="2000" height="1035" /&gt;
&lt;/figure&gt;</description></item><item><title>Albums: NFC Tap and Play</title><link>https://ghoofman.com/album-nfc-tap-and-play/</link><pubDate>Sat, 12 Nov 2022 09:00:00 +0000</pubDate><guid>https://ghoofman.com/album-nfc-tap-and-play/</guid><description>&lt;figure class="kg-card kg-image-card"&gt;
&lt;img src="https://ghoofman.com/images/posts/PXL_20210729_032821047.MP.jpg" class="kg-image" loading="lazy" sizes="(min-width: 720px) 720px" srcset="https://ghoofman.com/content/images/size/w600/2023/04/PXL_20210729_032821047.MP.jpg 600w, https://ghoofman.com/content/images/size/w1000/2023/04/PXL_20210729_032821047.MP.jpg 1000w, https://ghoofman.com/content/images/2023/04/PXL_20210729_032821047.MP.jpg 1414w" width="1414" height="1886" /&gt;
&lt;/figure&gt;
&lt;figure class="kg-card kg-image-card"&gt;
&lt;img src="https://ghoofman.com/images/posts/PXL_20210729_032500664.MP.jpg" class="kg-image" loading="lazy" sizes="(min-width: 720px) 720px" srcset="https://ghoofman.com/content/images/size/w600/2023/04/PXL_20210729_032500664.MP.jpg 600w, https://ghoofman.com/content/images/size/w1000/2023/04/PXL_20210729_032500664.MP.jpg 1000w, https://ghoofman.com/content/images/size/w1600/2023/04/PXL_20210729_032500664.MP.jpg 1600w, https://ghoofman.com/content/images/size/w2400/2023/04/PXL_20210729_032500664.MP.jpg 2400w" width="2000" height="1500" /&gt;
&lt;/figure&gt;
&lt;figure class="kg-card kg-image-card"&gt;
&lt;img src="https://ghoofman.com/images/posts/138669650_10101539299518287_6409188117873936430_n.jpg" class="kg-image" loading="lazy" sizes="(min-width: 720px) 720px" srcset="https://ghoofman.com/content/images/size/w600/2023/04/138669650_10101539299518287_6409188117873936430_n.jpg 600w, https://ghoofman.com/content/images/size/w1000/2023/04/138669650_10101539299518287_6409188117873936430_n.jpg 1000w, https://ghoofman.com/content/images/size/w1600/2023/04/138669650_10101539299518287_6409188117873936430_n.jpg 1600w, https://ghoofman.com/content/images/2023/04/138669650_10101539299518287_6409188117873936430_n.jpg 1896w" width="1896" height="1422" /&gt;
&lt;/figure&gt;
&lt;figure class="kg-card kg-image-card"&gt;
&lt;img src="https://ghoofman.com/images/posts/139162849_10101539299453417_3299506596819602417_n.jpg" class="kg-image" loading="lazy" sizes="(min-width: 720px) 720px" srcset="https://ghoofman.com/content/images/size/w600/2023/04/139162849_10101539299453417_3299506596819602417_n.jpg 600w, https://ghoofman.com/content/images/size/w1000/2023/04/139162849_10101539299453417_3299506596819602417_n.jpg 1000w, https://ghoofman.com/content/images/2023/04/139162849_10101539299453417_3299506596819602417_n.jpg 1066w" width="1066" height="1422" /&gt;
&lt;/figure&gt;
&lt;figure class="kg-card kg-image-card"&gt;
&lt;img src="https://ghoofman.com/images/posts/138923578_10101539299463397_2623935691691771552_n.jpg" class="kg-image" loading="lazy" sizes="(min-width: 720px) 720px" srcset="https://ghoofman.com/content/images/size/w600/2023/04/138923578_10101539299463397_2623935691691771552_n.jpg 600w, https://ghoofman.com/content/images/size/w1000/2023/04/138923578_10101539299463397_2623935691691771552_n.jpg 1000w, https://ghoofman.com/content/images/2023/04/138923578_10101539299463397_2623935691691771552_n.jpg 1066w" width="1066" height="1422" /&gt;
&lt;/figure&gt;</description></item><item><title>Microgreens: Automation Mini</title><link>https://ghoofman.com/microgreens-mini/</link><pubDate>Tue, 18 Oct 2022 11:00:00 +0000</pubDate><guid>https://ghoofman.com/microgreens-mini/</guid><description>&lt;figure class="kg-card kg-image-card"&gt;
&lt;img src="https://ghoofman.com/images/posts/PXL_20220105_195742266.MP-2.jpg" class="kg-image" loading="lazy" width="205" height="273" /&gt;
&lt;/figure&gt;</description></item><item><title>Microgreens: Automation</title><link>https://ghoofman.com/microgreens/</link><pubDate>Wed, 15 Jun 2022 20:01:00 +0000</pubDate><guid>https://ghoofman.com/microgreens/</guid><description>&lt;p&gt;This was an experiment to create an aeroponics microgreens grow. The idea is to use a silicon or stainless steel mesh with holes small enough to keep the seeds from falling through. Then a top is a placed on to act as a weight (pushing the roots down) and to keep the water that is sprayed through nozzles  (every 15 minutes for 1 minute) from escaping.&lt;/p&gt;
&lt;figure class="kg-card kg-image-card"&gt;
&lt;img src="https://ghoofman.com/images/posts/PXL_20210820_005440713.MP.jpg" class="kg-image" loading="lazy" sizes="(min-width: 720px) 720px" srcset="https://ghoofman.com/content/images/size/w600/2023/04/PXL_20210820_005440713.MP.jpg 600w, https://ghoofman.com/content/images/size/w1000/2023/04/PXL_20210820_005440713.MP.jpg 1000w, https://ghoofman.com/content/images/2023/04/PXL_20210820_005440713.MP.jpg 1414w" width="1414" height="1886" /&gt;
&lt;/figure&gt;
&lt;figure class="kg-card kg-image-card"&gt;
&lt;img src="https://ghoofman.com/images/posts/241625584_10101673620682597_5637464302235229142_n.jpg" class="kg-image" loading="lazy" sizes="(min-width: 720px) 720px" srcset="https://ghoofman.com/content/images/size/w600/2023/04/241625584_10101673620682597_5637464302235229142_n.jpg 600w, https://ghoofman.com/content/images/size/w1000/2023/04/241625584_10101673620682597_5637464302235229142_n.jpg 1000w, https://ghoofman.com/content/images/2023/04/241625584_10101673620682597_5637464302235229142_n.jpg 1074w" width="1074" height="1432" /&gt;
&lt;/figure&gt;
&lt;figure class="kg-card kg-image-card"&gt;
&lt;img src="https://ghoofman.com/images/posts/241639642_10101673620817327_4794958109869389372_n.jpg" class="kg-image" loading="lazy" sizes="(min-width: 720px) 720px" srcset="https://ghoofman.com/content/images/size/w600/2023/04/241639642_10101673620817327_4794958109869389372_n.jpg 600w, https://ghoofman.com/content/images/size/w1000/2023/04/241639642_10101673620817327_4794958109869389372_n.jpg 1000w, https://ghoofman.com/content/images/2023/04/241639642_10101673620817327_4794958109869389372_n.jpg 1074w" width="1074" height="1432" /&gt;
&lt;/figure&gt;

&lt;h2 class="relative group"&gt;Result
 &lt;div id="result" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#result" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;It was successful for the first couple of runs, and was very easy to harvest (no coco coir, or other medium to clean off) and easy to scrub the grow plate off afterward.&lt;/p&gt;</description></item><item><title>3D Printed QR Code</title><link>https://ghoofman.com/3d-printed-qr-code/</link><pubDate>Fri, 18 Mar 2022 03:00:00 +0000</pubDate><guid>https://ghoofman.com/3d-printed-qr-code/</guid><description>&lt;figure class="kg-card kg-image-card"&gt;
&lt;img src="https://ghoofman.com/images/posts/PXL_20220626_154629372.MP.jpg" class="kg-image" loading="lazy" sizes="(min-width: 720px) 720px" srcset="https://ghoofman.com/content/images/size/w600/2023/04/PXL_20220626_154629372.MP.jpg 600w, https://ghoofman.com/content/images/size/w1000/2023/04/PXL_20220626_154629372.MP.jpg 1000w, https://ghoofman.com/content/images/2023/04/PXL_20220626_154629372.MP.jpg 1414w" width="1414" height="1886" /&gt;
&lt;/figure&gt;
&lt;figure class="kg-card kg-image-card"&gt;
&lt;img src="https://ghoofman.com/images/posts/PXL_20220626_185852893.MP.jpg" class="kg-image" loading="lazy" sizes="(min-width: 720px) 720px" srcset="https://ghoofman.com/content/images/size/w600/2023/04/PXL_20220626_185852893.MP.jpg 600w, https://ghoofman.com/content/images/size/w1000/2023/04/PXL_20220626_185852893.MP.jpg 1000w, https://ghoofman.com/content/images/2023/04/PXL_20220626_185852893.MP.jpg 1414w" width="1414" height="1886" /&gt;
&lt;/figure&gt;</description></item><item><title>Nanoleaf: On the cheap</title><link>https://ghoofman.com/nanoleaf-on-the-cheap/</link><pubDate>Thu, 17 Mar 2022 20:39:00 +0000</pubDate><guid>https://ghoofman.com/nanoleaf-on-the-cheap/</guid><description>&lt;p&gt;The design was all done in OnShape and then printed out on my Prusa MK3s+ using a wood filament type. The intention was to use magnets to connect the lights together, and then stain the wood to give a unique light.&lt;/p&gt;
&lt;p&gt;The white plexiglass didn&amp;rsquo;t cascade/black enough of light though and you could easily see the location of each LED.&lt;/p&gt;
&lt;figure class="kg-card kg-image-card"&gt;
&lt;img src="https://ghoofman.com/images/posts/138282484_10101538568902447_6224375000715624421_n.jpg" class="kg-image" loading="lazy" sizes="(min-width: 720px) 720px" srcset="https://ghoofman.com/content/images/size/w600/2023/04/138282484_10101538568902447_6224375000715624421_n.jpg 600w, https://ghoofman.com/content/images/size/w1000/2023/04/138282484_10101538568902447_6224375000715624421_n.jpg 1000w, https://ghoofman.com/content/images/2023/04/138282484_10101538568902447_6224375000715624421_n.jpg 1066w" width="1066" height="1422" /&gt;
&lt;/figure&gt;
&lt;p&gt;An early thought was to try using some nickel ribbon to create pressured tabs that would connect (sort of like your AA&amp;rsquo;s connect the negative in your remotes) when snapping together. Finding the right length, proved difficult though, and I just wired them through the holes for prototype 1.&lt;/p&gt;</description></item><item><title>Hydroponics: A journey of 3D printing and microcontrollers</title><link>https://ghoofman.com/hydroponics/</link><pubDate>Sun, 21 Nov 2021 19:56:00 +0000</pubDate><guid>https://ghoofman.com/hydroponics/</guid><description>&lt;figure class="kg-card kg-image-card"&gt;
&lt;img src="https://ghoofman.com/images/posts/138298151_10101538565449367_3390521229563078812_n.jpg" class="kg-image" loading="lazy" sizes="(min-width: 720px) 720px" srcset="https://ghoofman.com/content/images/size/w600/2023/04/138298151_10101538565449367_3390521229563078812_n.jpg 600w, https://ghoofman.com/content/images/size/w1000/2023/04/138298151_10101538565449367_3390521229563078812_n.jpg 1000w, https://ghoofman.com/content/images/size/w1600/2023/04/138298151_10101538565449367_3390521229563078812_n.jpg 1600w, https://ghoofman.com/content/images/2023/04/138298151_10101538565449367_3390521229563078812_n.jpg 1896w" width="1896" height="1422" /&gt;
&lt;/figure&gt;
&lt;figure class="kg-card kg-image-card"&gt;
&lt;img src="https://ghoofman.com/images/posts/IMG_20200427_221941_MP.jpg" class="kg-image" loading="lazy" sizes="(min-width: 720px) 720px" srcset="https://ghoofman.com/content/images/size/w600/2023/04/IMG_20200427_221941_MP.jpg 600w, https://ghoofman.com/content/images/size/w1000/2023/04/IMG_20200427_221941_MP.jpg 1000w, https://ghoofman.com/content/images/size/w1600/2023/04/IMG_20200427_221941_MP.jpg 1600w, https://ghoofman.com/content/images/size/w2400/2023/04/IMG_20200427_221941_MP.jpg 2400w" width="2000" height="1500" /&gt;
&lt;/figure&gt;
&lt;figure class="kg-card kg-image-card"&gt;
&lt;img src="https://ghoofman.com/images/posts/138329595_10101538577390437_2132683622409228540_n.jpg" class="kg-image" loading="lazy" sizes="(min-width: 720px) 720px" srcset="https://ghoofman.com/content/images/size/w600/2023/04/138329595_10101538577390437_2132683622409228540_n.jpg 600w, https://ghoofman.com/content/images/size/w1000/2023/04/138329595_10101538577390437_2132683622409228540_n.jpg 1000w, https://ghoofman.com/content/images/size/w1600/2023/04/138329595_10101538577390437_2132683622409228540_n.jpg 1600w, https://ghoofman.com/content/images/2023/04/138329595_10101538577390437_2132683622409228540_n.jpg 1620w" width="1620" height="1422" /&gt;
&lt;/figure&gt;
&lt;figure class="kg-card kg-image-card"&gt;
&lt;img src="https://ghoofman.com/images/posts/138231812_10101538577175867_6156523825130900762_n.jpg" class="kg-image" loading="lazy" sizes="(min-width: 720px) 720px" srcset="https://ghoofman.com/content/images/size/w600/2023/04/138231812_10101538577175867_6156523825130900762_n.jpg 600w, https://ghoofman.com/content/images/size/w1000/2023/04/138231812_10101538577175867_6156523825130900762_n.jpg 1000w, https://ghoofman.com/content/images/2023/04/138231812_10101538577175867_6156523825130900762_n.jpg 1066w" width="1066" height="1422" /&gt;
&lt;/figure&gt;
&lt;figure class="kg-card kg-image-card"&gt;
&lt;img src="https://ghoofman.com/images/posts/138292390_10101538565419427_6700180902445350004_n.jpg" class="kg-image" loading="lazy" sizes="(min-width: 720px) 720px" srcset="https://ghoofman.com/content/images/size/w600/2023/04/138292390_10101538565419427_6700180902445350004_n.jpg 600w, https://ghoofman.com/content/images/size/w1000/2023/04/138292390_10101538565419427_6700180902445350004_n.jpg 1000w, https://ghoofman.com/content/images/2023/04/138292390_10101538565419427_6700180902445350004_n.jpg 1066w" width="1066" height="1422" /&gt;
&lt;/figure&gt;
&lt;figure class="kg-card kg-image-card"&gt;
&lt;img src="https://ghoofman.com/images/posts/138877665_10101538565748767_8779701004419792554_n.jpg" class="kg-image" loading="lazy" sizes="(min-width: 720px) 720px" srcset="https://ghoofman.com/content/images/size/w600/2023/04/138877665_10101538565748767_8779701004419792554_n.jpg 600w, https://ghoofman.com/content/images/size/w1000/2023/04/138877665_10101538565748767_8779701004419792554_n.jpg 1000w, https://ghoofman.com/content/images/2023/04/138877665_10101538565748767_8779701004419792554_n.jpg 1066w" width="1066" height="1422" /&gt;
&lt;/figure&gt;</description></item><item><title>Grow Cylinder: Recycle Reuse</title><link>https://ghoofman.com/grow-cylinder-recycle-reuse/</link><pubDate>Tue, 02 Nov 2021 02:30:00 +0000</pubDate><guid>https://ghoofman.com/grow-cylinder-recycle-reuse/</guid><description>&lt;figure class="kg-card kg-image-card"&gt;
&lt;img src="https://ghoofman.com/images/posts/IMG_20201112_204850.jpg" class="kg-image" loading="lazy" sizes="(min-width: 720px) 720px" srcset="https://ghoofman.com/content/images/size/w600/2023/04/IMG_20201112_204850.jpg 600w, https://ghoofman.com/content/images/size/w1000/2023/04/IMG_20201112_204850.jpg 1000w, https://ghoofman.com/content/images/size/w1600/2023/04/IMG_20201112_204850.jpg 1600w, https://ghoofman.com/content/images/size/w2400/2023/04/IMG_20201112_204850.jpg 2400w" width="2000" height="1126" /&gt;
&lt;/figure&gt;
&lt;figure class="kg-card kg-image-card"&gt;
&lt;img src="https://ghoofman.com/images/posts/PXL_20201113_014356002.MP.jpg" class="kg-image" loading="lazy" sizes="(min-width: 720px) 720px" srcset="https://ghoofman.com/content/images/size/w600/2023/04/PXL_20201113_014356002.MP.jpg 600w, https://ghoofman.com/content/images/size/w1000/2023/04/PXL_20201113_014356002.MP.jpg 1000w, https://ghoofman.com/content/images/size/w1600/2023/04/PXL_20201113_014356002.MP.jpg 1600w, https://ghoofman.com/content/images/size/w2400/2023/04/PXL_20201113_014356002.MP.jpg 2400w" width="2000" height="1500" /&gt;
&lt;/figure&gt;</description></item><item><title>Bell Siphon: Hydroponics</title><link>https://ghoofman.com/bell-siphon-hydroponics/</link><pubDate>Mon, 19 Jul 2021 14:02:00 +0000</pubDate><guid>https://ghoofman.com/bell-siphon-hydroponics/</guid><description>&lt;figure class="kg-card kg-image-card"&gt;
&lt;img src="https://ghoofman.com/images/posts/143923117_10101553679385917_73389300499909256_n.jpg" class="kg-image" loading="lazy" srcset="https://ghoofman.com/content/images/size/w600/2023/04/143923117_10101553679385917_73389300499909256_n.jpg 600w, https://ghoofman.com/content/images/2023/04/143923117_10101553679385917_73389300499909256_n.jpg 699w" width="699" height="1165" /&gt;
&lt;/figure&gt;
&lt;figure class="kg-card kg-image-card"&gt;
&lt;img src="https://ghoofman.com/images/posts/143676031_10101553679665357_6283515283360386742_n.jpg" class="kg-image" loading="lazy" sizes="(min-width: 720px) 720px" srcset="https://ghoofman.com/content/images/size/w600/2023/04/143676031_10101553679665357_6283515283360386742_n.jpg 600w, https://ghoofman.com/content/images/size/w1000/2023/04/143676031_10101553679665357_6283515283360386742_n.jpg 1000w, https://ghoofman.com/content/images/size/w1600/2023/04/143676031_10101553679665357_6283515283360386742_n.jpg 1600w, https://ghoofman.com/content/images/2023/04/143676031_10101553679665357_6283515283360386742_n.jpg 1759w" width="1759" height="1319" /&gt;
&lt;/figure&gt;
&lt;figure class="kg-card kg-image-card"&gt;
&lt;img src="https://ghoofman.com/images/posts/144245035_10101553683158357_6776698378105901550_n.jpg" class="kg-image" loading="lazy" sizes="(min-width: 720px) 720px" srcset="https://ghoofman.com/content/images/size/w600/2023/04/144245035_10101553683158357_6776698378105901550_n.jpg 600w, https://ghoofman.com/content/images/2023/04/144245035_10101553683158357_6776698378105901550_n.jpg 946w" width="946" height="1262" /&gt;
&lt;/figure&gt;
&lt;figure class="kg-card kg-image-card"&gt;
&lt;img src="https://ghoofman.com/images/posts/144261857_10101553683318037_3301925922666621411_n.jpg" class="kg-image" loading="lazy" sizes="(min-width: 720px) 720px" srcset="https://ghoofman.com/content/images/size/w600/2023/04/144261857_10101553683318037_3301925922666621411_n.jpg 600w, https://ghoofman.com/content/images/2023/04/144261857_10101553683318037_3301925922666621411_n.jpg 946w" width="946" height="1262" /&gt;
&lt;/figure&gt;
&lt;figure class="kg-card kg-image-card"&gt;
&lt;img src="https://ghoofman.com/images/posts/144208132_10101553683377917_6721585894987024960_n.jpg" class="kg-image" loading="lazy" srcset="https://ghoofman.com/content/images/size/w600/2023/04/144208132_10101553683377917_6721585894987024960_n.jpg 600w, https://ghoofman.com/content/images/2023/04/144208132_10101553683377917_6721585894987024960_n.jpg 710w" width="710" height="1262" /&gt;
&lt;/figure&gt;
&lt;figure class="kg-card kg-image-card"&gt;
&lt;img src="https://ghoofman.com/images/posts/143696821_10101553683442787_7973928703016296652_n.jpg" class="kg-image" loading="lazy" sizes="(min-width: 720px) 720px" srcset="https://ghoofman.com/content/images/size/w600/2023/04/143696821_10101553683442787_7973928703016296652_n.jpg 600w, https://ghoofman.com/content/images/2023/04/143696821_10101553683442787_7973928703016296652_n.jpg 946w" width="946" height="1262" /&gt;
&lt;/figure&gt;</description></item><item><title>End of the Line</title><link>https://ghoofman.com/end-of-the-line/</link><pubDate>Tue, 17 Nov 2020 23:08:00 +0000</pubDate><guid>https://ghoofman.com/end-of-the-line/</guid><description>&lt;figure class="kg-card kg-bookmark-card"&gt;
&lt;a href="https://beefystar.itch.io/playeotl?ref=ghoofman.com" class="kg-bookmark-container"&gt;&lt;/a&gt;
&lt;div class="kg-bookmark-content"&gt;
&lt;div class="kg-bookmark-title"&gt;
End of the Line by Beefy Star Games, JimblyJombly, ghoofman
&lt;/div&gt;
&lt;div class="kg-bookmark-description"&gt;
High intensity base building game on a train bound for planetary escape
&lt;/div&gt;
&lt;div class="kg-bookmark-metadata"&gt;
&lt;img src="https://ghoofman.com/images/posts/m5HPAE.png" class="kg-bookmark-icon" /&gt;&lt;span class="kg-bookmark-author"&gt;itch.io&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="kg-bookmark-thumbnail"&gt;
&lt;img src="https://ghoofman.com/images/posts/2tXpEz.png" /&gt;
&lt;/div&gt;
&lt;/figure&gt;
&lt;p&gt;End of the Line is a thrilling base-building game set aboard a high-speed train racing away from planetary invasion. As you construct and manage your base, you&amp;rsquo;ll face constant danger and need to stay on your toes to survive. Whether you prefer strategic planning or fast-paced action, this game has something for everyone.&lt;/p&gt;</description></item><item><title>The Box: Parametric Modeling</title><link>https://ghoofman.com/smart-box/</link><pubDate>Mon, 20 Jul 2020 20:31:00 +0000</pubDate><guid>https://ghoofman.com/smart-box/</guid><description>&lt;p&gt;This was my first real introduction to parametric modeling with OnShape. My previous experience with 3D modeling had all been with standard game development.&lt;/p&gt;
&lt;p&gt;This build had a whole host of features.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;NFC tag reading on the top&lt;/li&gt;
&lt;li&gt;Integrated 3W speakers&lt;/li&gt;
&lt;li&gt;Bluetooth connection through Raspberry Pi&lt;/li&gt;
&lt;li&gt;7&amp;quot; Touchscreen&lt;/li&gt;
&lt;li&gt;Integrated night light in the base&lt;/li&gt;
&lt;li&gt;Integrated wireless charging in the base (just slide your phone in)&lt;/li&gt;
&lt;li&gt;Electron App based desktop/website with weather and full customizable&lt;/li&gt;
&lt;li&gt;Fully 3D printed enclosure with very little empty space remaining&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;OnShape Viewer: &lt;a href="https://cad.onshape.com/documents/3e8a090decdbbac88a7f8cff/w/a707d2418fe5c5c02f894ba8/e/182a681bcaed9481e9eb62e2?renderMode=0&amp;amp;uiState=643dea513b5d582a7b14d265&amp;amp;ref=ghoofman.com" target="_blank" rel="noreferrer"&gt;https://cad.onshape.com/documents/3e8a090decdbbac88a7f8cff/w/a707d2418fe5c5c02f894ba8/e/182a681bcaed9481e9eb62e2?renderMode=0&amp;amp;uiState=643dea513b5d582a7b14d265&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Onewheel - Can it replace your car?</title><link>https://ghoofman.com/onewheel-an-actual-review/</link><pubDate>Thu, 20 Dec 2018 21:20:00 +0000</pubDate><guid>https://ghoofman.com/onewheel-an-actual-review/</guid><description>&lt;p&gt;Back in August I ordered a Onewheel XR+ and I&amp;rsquo;ve taken it over 200 miles since then.&lt;br&gt;
&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt="One Wheel"
 src="https://ghoofman.com/images/posts/Onewheel_Plus_grande.png"
 &gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;The idea was that I could sell my car, and use the Onewheel as my primary commuter vehicle. Viable? Absolutely.&lt;/p&gt;
&lt;p&gt;Before making the significant $1800+ decision to buy it, I had done as much research as I could but I never found a full breakdown review of what it&amp;rsquo;s like to ride the board day to day. That&amp;rsquo;s what this is.&lt;/p&gt;</description></item><item><title>Onewheel: Can it replace your car?</title><link>https://ghoofman.com/onewheel-can-it-replace-your-car/</link><pubDate>Thu, 20 Dec 2018 16:20:00 +0000</pubDate><guid>https://ghoofman.com/onewheel-can-it-replace-your-car/</guid><description>&lt;p&gt;Back in August I ordered a Onewheel XR+ and I&amp;rsquo;ve taken it over 200 miles since then.&lt;/p&gt;
&lt;figure class="kg-card kg-image-card"&gt;
&lt;img src="https://ghoofman.com/images/posts/Onewheel_Plus_grande-1.webp" class="kg-image" loading="lazy" srcset="https://ghoofman.com/content/images/2023/04/Onewheel_Plus_grande-1.webp 600w" width="600" height="401" /&gt;
&lt;/figure&gt;
&lt;p&gt;The idea was that I could sell my car, and use the Onewheel as my primary commuter vehicle. Viable? Absolutely.&lt;/p&gt;
&lt;p&gt;Before making the significant $1800+ decision to buy it, I had done as much research as I could but I never found a full breakdown review of what it&amp;rsquo;s like to ride the board day to day. That&amp;rsquo;s what this is.&lt;/p&gt;</description></item><item><title>Fyo</title><link>https://ghoofman.com/fyo/</link><pubDate>Thu, 11 Jan 2018 16:45:08 +0000</pubDate><guid>https://ghoofman.com/fyo/</guid><description>&lt;p&gt;A gaming platform embedded in a table in which you use your cell phone as the game controller.&lt;/p&gt;
&lt;p&gt;&lt;br&gt;
&lt;br&gt;
&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://ghoofman.com/images/posts/3z1RECFf7_fROLfUJouBN64pVC4VKTHh4GnYMMt7Oh6Q-oRb6TPFddEtVsLW5HJbdI_QfRj-Hcgh77uEdv1SlotZB68Q2JK-vFJvxd0RY0G1LbeQcmsQ77f1mvTcZy-IsyrNMiKBBF3rK8V7bHapzFGKapNWcr13H-NZcGPB7CnPRyXwuqTH7QtfI7IJHgoGmAUl06tr5bFmIAhuoSerlKXpblHpt3YfKL1seiYG7NJB0XaOycgbV3SViJI27-9rj5DS6iG6_YhP8HiZ-rBMFqndrzpjV32kb1DjqGbA5Fv0gBPiLfxFC59elEQqjLSBNSQJfPaIrrMTT85qPbwUfQQSPmkgl93spdejcn0EDsi8RXUDzeploT-PWUoFz0yInH_aFF6Tqa9NDcIRkGk-XwCQLIpxzIls8ER3zaTJk901Vg5_CFRpf6dC8vopsd5pViXCXpbDALuKedAC15EKLt6Ugun7AHsPecXeDbMmRkdoKFkR_UyHVvJjyEfG-lAP__pH6nKkeitY-d_Xt1ftSq4BZYo9VlJNiJNGle3atPGdCdryCdf0NjldAH12fLOlBFW_ZaJgGbverRHRVHWikQw0S0DGqEhbbscVhd4JOHGOTXPIsHhpHrnjavzlawk=w1375-h1031-no"
 &gt;&lt;/figure&gt;
&lt;/p&gt;</description></item><item><title>Fyo Table: Taking Social Gaming to the Next Level</title><link>https://ghoofman.com/fyo-table/</link><pubDate>Sat, 06 Jan 2018 19:35:00 +0000</pubDate><guid>https://ghoofman.com/fyo-table/</guid><description>&lt;p&gt;Gaming has always been a popular activity, especially among friends and family. However, traditional gaming setups, such as consoles or PCs, often require players to sit in front of a screen, limiting social interaction. The Fyo Table, a platform that uses an NVIDIA Shield and a TV embedded into a table, seeks to change that by enhancing social events with unique gameplay experiences.&lt;/p&gt;
&lt;p&gt;The Fyo Table can run any Android-based game and uses your cell phone as a controller, sending all input over WiFi. This means that players can enjoy games while sitting around the table, interacting with each other, and playing with a larger screen than their mobile device. The Fyo Table supports up to eight players at once, making it perfect for parties, family gatherings, or other social events.&lt;/p&gt;</description></item><item><title>Dont Get Eaten by Dinosaurs</title><link>https://ghoofman.com/dont-get-eaten-by-dinosaurs/</link><pubDate>Mon, 29 Aug 2016 00:00:00 +0000</pubDate><guid>https://ghoofman.com/dont-get-eaten-by-dinosaurs/</guid><description>&lt;p&gt;The title sums it up pretty well. Don&amp;rsquo;t get eaten by dinosaurs.&lt;br&gt;
&lt;br&gt;
Your goal is to survive 7 days and before it ends, hit 100 stamina (meaning your full)&lt;br&gt;
&lt;br&gt;
Chickens are pretty easy to take out, the TRex&amp;rsquo;s are out for blood though.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
			&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/MAgni6-evqg?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
		&lt;/div&gt;</description></item><item><title>Game &amp; Graphics Programming 101</title><link>https://ghoofman.com/game-graphics-programming-101/</link><pubDate>Wed, 03 Aug 2016 10:11:00 +0000</pubDate><guid>https://ghoofman.com/game-graphics-programming-101/</guid><description>&lt;p&gt;I recently gave a talk for the &lt;a href="http://www.meetup.com/GamedevGR/?ref=ghoofman.com" target="_blank" rel="noreferrer"&gt;GamedevGR Meetup&lt;/a&gt; and recorded the whole thing via my &lt;a href="https://www.twitch.tv/ghoofman?ref=ghoofman.com" target="_blank" rel="noreferrer"&gt;Twitch Channel&lt;/a&gt;.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
			&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/MYc1-DkOUtE?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
		&lt;/div&gt;


&lt;h2 class="relative group"&gt;Relevant Links:
 &lt;div id="relevant-links" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#relevant-links" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[Presentation Slides](&lt;a href="https://docs.google.com/presentation/d/1ozqRxhiKuuGsIAK1JQoOrvotKq8GrzGslpt9vJDYwuM/edit?usp=sharing&amp;amp;ref=ghoofman.com" target="_blank" rel="noreferrer"&gt;https://docs.google.com/presentation/d/1ozqRxhiKuuGsIAK1JQoOrvotKq8GrzGslpt9vJDYwuM/edit?usp=sharing&lt;/a&gt;) - Everything that was shown, except the whiteboard&lt;/li&gt;
&lt;li&gt;[My Notes](&lt;a href="https://docs.google.com/document/d/18QdmZOLB86nbzgYyAo7SVmzY3iyh5X06oWXUwozerhQ/edit?usp=sharing&amp;amp;ref=ghoofman.com" target="_blank" rel="noreferrer"&gt;https://docs.google.com/document/d/18QdmZOLB86nbzgYyAo7SVmzY3iyh5X06oWXUwozerhQ/edit?usp=sharing&lt;/a&gt;) - Not very cleaned up, but contains the formulas&lt;/li&gt;
&lt;li&gt;[The OPengine](&lt;a href="http://opengine.io/?ref=ghoofman.com" target="_blank" rel="noreferrer"&gt;http://opengine.io&lt;/a&gt;) - This is my own cross-platform game engine.&lt;/li&gt;
&lt;li&gt;[The Gimbal Lock Program](&lt;a href="https://drive.google.com/file/d/0B4TI_FFJCJBMNXNBc1RoWTRNdjQ/view?usp=sharing&amp;amp;ref=ghoofman.com" target="_blank" rel="noreferrer"&gt;https://drive.google.com/file/d/0B4TI_FFJCJBMNXNBc1RoWTRNdjQ/view?usp=sharing&lt;/a&gt;) - To help illustrate what Gimbal Lock is and why it matters&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
			&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/PxXeCV65Bt4?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
		&lt;/div&gt;

&lt;p&gt;If you have more questions, or you&amp;rsquo;re interested in checking out the OPengine, you can join the OPifex Slack Channel here: [http://slackin-opifex.herokuapp.com/](&lt;a href="http://slackin-opifex.herokuapp.com/?ref=ghoofman.com" target="_blank" rel="noreferrer"&gt;http://slackin-opifex.herokuapp.com/&lt;/a&gt;)&lt;/p&gt;</description></item><item><title>Set in Stone</title><link>https://ghoofman.com/set-in-stone/</link><pubDate>Wed, 18 May 2016 00:00:00 +0000</pubDate><guid>https://ghoofman.com/set-in-stone/</guid><description>&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
			&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/videoseries?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
		&lt;/div&gt;


&lt;h2 class="relative group"&gt;VR
 &lt;div id="vr" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#vr" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
			&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/RZmDGtiYAcI?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
		&lt;/div&gt;


&lt;h2 class="relative group"&gt;Gallery
 &lt;div id="gallery" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#gallery" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;figure class="kg-card kg-image-card kg-card-hascaption"&gt;
&lt;img src="https://ghoofman.com/images/posts/SetInStone.Shadows-2.gif" class="kg-image" loading="lazy" sizes="(min-width: 720px) 720px" srcset="https://ghoofman.com/content/images/size/w600/2023/04/SetInStone.Shadows-2.gif 600w, https://ghoofman.com/content/images/2023/04/SetInStone.Shadows-2.gif 720w" width="720" height="389" /&gt;
&lt;figcaption&gt;Shadows and IMGUI&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class="kg-card kg-image-card kg-card-hascaption"&gt;
&lt;img src="https://ghoofman.com/images/posts/KidCharacterRig.gif" class="kg-image" loading="lazy" width="437" height="300" /&gt;
&lt;figcaption&gt;Character Rig in Maya LT&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class="kg-card kg-image-card kg-card-hascaption"&gt;
&lt;img src="https://ghoofman.com/images/posts/SetInStone.SwordCombo.Better2.gif" class="kg-image" loading="lazy" srcset="https://ghoofman.com/content/images/size/w600/2023/04/SetInStone.SwordCombo.Better2.gif 600w, https://ghoofman.com/content/images/2023/04/SetInStone.SwordCombo.Better2.gif 698w" width="698" height="395" /&gt;
&lt;figcaption&gt;Animation Merging&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class="kg-card kg-image-card kg-card-hascaption"&gt;
&lt;img src="https://ghoofman.com/images/posts/SetInStone.BridgeTween.gif" class="kg-image" loading="lazy" width="551" height="310" /&gt;
&lt;figcaption&gt;Triggers&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class="kg-card kg-image-card kg-card-hascaption"&gt;
&lt;img src="https://ghoofman.com/images/posts/SetInStone.GearsRotating.gif" class="kg-image" loading="lazy" srcset="https://ghoofman.com/content/images/size/w600/2023/04/SetInStone.GearsRotating.gif 600w, https://ghoofman.com/content/images/2023/04/SetInStone.GearsRotating.gif 611w" width="611" height="273" /&gt;
&lt;figcaption&gt;Gears!&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h2 class="relative group"&gt;Concept Art
 &lt;div id="concept-art" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#concept-art" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;figure class="kg-card kg-image-card"&gt;
&lt;img src="https://ghoofman.com/images/posts/Map.png" class="kg-image" loading="lazy" sizes="(min-width: 720px) 720px" srcset="https://ghoofman.com/content/images/size/w600/2023/04/Map.png 600w, https://ghoofman.com/content/images/size/w1000/2023/04/Map.png 1000w, https://ghoofman.com/content/images/size/w1600/2023/04/Map.png 1600w, https://ghoofman.com/content/images/size/w2400/2023/04/Map.png 2400w" width="2000" height="1333" /&gt;
&lt;/figure&gt;
&lt;figure class="kg-card kg-image-card"&gt;
&lt;img src="https://ghoofman.com/images/posts/EnvironmentPainting_2017.jpg" class="kg-image" loading="lazy" sizes="(min-width: 720px) 720px" srcset="https://ghoofman.com/content/images/size/w600/2023/04/EnvironmentPainting_2017.jpg 600w, https://ghoofman.com/content/images/size/w1000/2023/04/EnvironmentPainting_2017.jpg 1000w, https://ghoofman.com/content/images/size/w1600/2023/04/EnvironmentPainting_2017.jpg 1600w, https://ghoofman.com/content/images/size/w2400/2023/04/EnvironmentPainting_2017.jpg 2400w" width="2000" height="1333" /&gt;
&lt;/figure&gt;
&lt;figure class="kg-card kg-image-card"&gt;
&lt;img src="https://ghoofman.com/images/posts/Frog.png" class="kg-image" loading="lazy" sizes="(min-width: 720px) 720px" srcset="https://ghoofman.com/content/images/size/w600/2023/04/Frog.png 600w, https://ghoofman.com/content/images/size/w1000/2023/04/Frog.png 1000w, https://ghoofman.com/content/images/size/w1600/2023/04/Frog.png 1600w, https://ghoofman.com/content/images/2023/04/Frog.png 1920w" width="1920" height="2880" /&gt;
&lt;/figure&gt;
&lt;figure class="kg-card kg-image-card"&gt;
&lt;img src="https://ghoofman.com/images/posts/Rat.png" class="kg-image" loading="lazy" sizes="(min-width: 720px) 720px" srcset="https://ghoofman.com/content/images/size/w600/2023/04/Rat.png 600w, https://ghoofman.com/content/images/size/w1000/2023/04/Rat.png 1000w, https://ghoofman.com/content/images/size/w1600/2023/04/Rat.png 1600w, https://ghoofman.com/content/images/2023/04/Rat.png 1920w" width="1920" height="1280" /&gt;
&lt;/figure&gt;
&lt;figure class="kg-card kg-image-card"&gt;
&lt;img src="https://ghoofman.com/images/posts/Wizard.png" class="kg-image" loading="lazy" sizes="(min-width: 720px) 720px" srcset="https://ghoofman.com/content/images/size/w600/2023/04/Wizard.png 600w, https://ghoofman.com/content/images/size/w1000/2023/04/Wizard.png 1000w, https://ghoofman.com/content/images/size/w1600/2023/04/Wizard.png 1600w, https://ghoofman.com/content/images/size/w2400/2023/04/Wizard.png 2400w" width="2000" height="1333" /&gt;
&lt;/figure&gt;</description></item><item><title>Graveyard Shift</title><link>https://ghoofman.com/graveyard-shift/</link><pubDate>Mon, 18 Apr 2016 00:00:00 +0000</pubDate><guid>https://ghoofman.com/graveyard-shift/</guid><description>&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
			&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/U0QKbprv45Y?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
		&lt;/div&gt;

&lt;p&gt;Graveyard Shift is a live-action card game. Your objective: stay alive.&lt;br&gt;
&lt;br&gt;
The strategy is about managing your deck of cards to enhance your character during battle. You&amp;rsquo;ll use cards to shapeshift into skeletons, wolves and people each with their own unique abilities.&lt;br&gt;
&lt;br&gt;
Go forth and smite your enemies.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Instructions&lt;br&gt;
=============================&lt;br&gt;
This game plays a little bit like MtG in that you&amp;rsquo;re playing cards, and using energy to &amp;ldquo;cast&amp;rdquo; them.&lt;br&gt;
&lt;br&gt;
You start with a deck of cards which is shuffled at the start of the game, and then every 3 seconds you draw a card unless you have 4 cards in your hand (max hand size).&lt;br&gt;
&lt;br&gt;
When you play an energy card, you gain 1 energy.&lt;br&gt;
&lt;br&gt;
You can then use the energy you&amp;rsquo;ve collected to play other cards in your hand based on their cost (Upper right number of the card)&lt;br&gt;
&lt;br&gt;
Each card has a description in the bottom.&lt;br&gt;
&lt;br&gt;
Shapeshifting cards have stats in the middle for Attack, Defense, and Speed.&lt;br&gt;
&lt;br&gt;
You continue playing cards until you run out of cards in your deck, all the while trying to fight off an AI that&amp;rsquo;s doing the same thing.\&lt;/p&gt;</description></item><item><title>Design Projects</title><link>https://ghoofman.com/designing/</link><pubDate>Sun, 07 Feb 2016 03:48:55 +0000</pubDate><guid>https://ghoofman.com/designing/</guid><description>&lt;h2 class="relative group"&gt;LuvnPupz
 &lt;div id="luvnpupz" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#luvnpupz" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;My Updated Design: &lt;a href="http://luvnpupz.herokuapp.com" target="_blank" rel="noreferrer"&gt;http://luvnpupz.herokuapp.com&lt;/a&gt;&lt;br&gt;
Existing Design: &lt;a href="http://luvnpupz.org" target="_blank" rel="noreferrer"&gt;http://luvnpupz.org&lt;/a&gt;&lt;br&gt;
&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt="Design 1"
 src="https://ghoofman.com/content/images/2016/02/luvnpupz-2.png"
 &gt;&lt;/figure&gt;
&lt;/p&gt;

&lt;h2 class="relative group"&gt;PayIt2
 &lt;div id="payit2" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#payit2" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://payit2.com" target="_blank" rel="noreferrer"&gt;http://payit2.com&lt;/a&gt; &lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt="Design 2"
 src="https://ghoofman.com/content/images/2016/02/EventDesign10-1.png"
 &gt;&lt;/figure&gt;
&lt;/p&gt;

&lt;h2 class="relative group"&gt;OPengine
 &lt;div id="opengine" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#opengine" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://opengine.io" target="_blank" rel="noreferrer"&gt;http://opengine.io&lt;/a&gt; &lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt="Design 3"
 src="https://ghoofman.com/content/images/2016/02/OPengineLauncher-2.gif"
 &gt;&lt;/figure&gt;
&lt;/p&gt;

&lt;h2 class="relative group"&gt;IGMC Game
 &lt;div id="igmc-game" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#igmc-game" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt="Design 4"
 src="https://ghoofman.com/content/images/2016/02/Chat.png"
 &gt;&lt;/figure&gt;
&lt;/p&gt;</description></item><item><title>LuvnPupz</title><link>https://ghoofman.com/luvnpupz/</link><pubDate>Fri, 05 Feb 2016 23:43:00 +0000</pubDate><guid>https://ghoofman.com/luvnpupz/</guid><description>&lt;h3 class="relative group"&gt;Fostering
 &lt;div id="fostering" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#fostering" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;Justine and I have been fostering dogs through LuvnPupz for a month or two now. When Justine signed up to be a foster a couple months back she was very frustrated with the form submission process on the website. Since it was so frustrating and we weren&amp;rsquo;t very thrilled with the overall website design, we decided to do something about it. Over the course of a weekend we created &amp;amp; implemented a brand new design that drastically improves the website.&lt;/p&gt;</description></item><item><title>Connected Worlds</title><link>https://ghoofman.com/connected-worlds/</link><pubDate>Tue, 25 Aug 2015 00:00:00 +0000</pubDate><guid>https://ghoofman.com/connected-worlds/</guid><description>&lt;p&gt;Theme - Idea was that you&amp;rsquo;re running a smart home that connects all of your worlds together: Entertainment, Work, Social Life, etc.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
			&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/wzT5kzMglwA?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
		&lt;/div&gt;

&lt;p&gt;Information&lt;br&gt;
==================================&lt;br&gt;
This is running under the OPifex Engine, still under development, could be buggy.&lt;br&gt;
&lt;br&gt;
It was tested under Windows 8.1 with an Intel card. If you have a problem running it, please send me a screenshot of the console output and I&amp;rsquo;ll see if I can fix it.&lt;br&gt;
&lt;br&gt;
Or run it from command prompt: Application.exe &amp;gt; log.txt&lt;br&gt;
And then send me the log.txt file at &lt;a href="https://ghoofman.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="5334322121362727132736323e3c233a35362b7d303c3e"&gt;[email protected]&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
Controls&lt;br&gt;
==================================&lt;br&gt;
Enter - Go Through Menus&lt;br&gt;
Space - Move through time faster&lt;br&gt;
Left Mouse Click - Click on objects&lt;br&gt;
&lt;br&gt;
Unfinished&lt;br&gt;
==================================&lt;br&gt;
Kitchen - Character doesn&amp;rsquo;t eat :/&lt;br&gt;
Restaurant - No social life..&lt;br&gt;
Additional People - Wanted to add kids, wife, co-workers, etc.&lt;br&gt;
Security System&lt;br&gt;
Additional Controls - Air Conditioning, Phone Calls, etc.&lt;/p&gt;</description></item><item><title>OPengine: A Low-Level Game Engine for Fast and Portable Development</title><link>https://ghoofman.com/opengine/</link><pubDate>Mon, 22 Jun 2015 19:53:00 +0000</pubDate><guid>https://ghoofman.com/opengine/</guid><description>&lt;p&gt;The OPengine is a game engine developed with the goal of providing a fast, portable, low-level, and data-oriented platform for developing games. It uses C, CMake, OpenGL, and a range of other technologies to achieve this.&lt;/p&gt;
&lt;p&gt;At its core, the OPengine is designed to be lightweight and efficient. It is built around a data-oriented architecture that allows for fast and efficient data processing. This makes it ideal for developing games that require high performance and low-level control.&lt;/p&gt;</description></item><item><title>The Mad Engineer</title><link>https://ghoofman.com/the-mad-engineer/</link><pubDate>Tue, 28 Apr 2015 00:00:00 +0000</pubDate><guid>https://ghoofman.com/the-mad-engineer/</guid><description>&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
			&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/PENEOOKHKxk?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
		&lt;/div&gt;

&lt;p&gt;The idea I had for Beneath the Surface was an ugly robot. It didn&amp;rsquo;t look like much, didn&amp;rsquo;t have much for skills, but it had an intelligence. An intelligence &amp;ldquo;beneath the surface&amp;rdquo; that would allow it to break free, to think for itself.&lt;br&gt;
&lt;br&gt;
I didn&amp;rsquo;t get as far as I had intended, so it&amp;rsquo;s a brief game as is. Also had some music trouble with the audio system so I&amp;rsquo;m including a version with and with out sound.&lt;/p&gt;</description></item><item><title>Ultimate Bro-Down: Post mortem</title><link>https://ghoofman.com/ultimate-bro-down/</link><pubDate>Mon, 06 Oct 2014 00:00:00 +0000</pubDate><guid>https://ghoofman.com/ultimate-bro-down/</guid><description>&lt;p&gt;Cross Post with Kirk Roerig (&lt;a href="https://twitter.com/mrpossoms?ref=ghoofman.com" target="_blank" rel="noreferrer"&gt;@mrpossoms&lt;/a&gt;)&lt;/p&gt;

&lt;h3 class="relative group"&gt;Week of Awesome II &lt;em&gt;# Kirk&lt;/em&gt;
 &lt;div id="week-of-awesome-ii--kirk" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#week-of-awesome-ii--kirk" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;On August 24th, a second annual game development competition was posted on &lt;a href="https://teamopifex.com/ultimate-bro-down-post-mortem/www.gamedev.net?ref=ghoofman.com" target="_blank" rel="noreferrer"&gt;gamedev.net&lt;/a&gt;. Like many game jams, it followed pretty standard rules.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Adhere to the theme&lt;/li&gt;
&lt;li&gt;No development may begin before the start of the competition&lt;/li&gt;
&lt;li&gt;Complete your project within the 7 day competition period.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="https://twitter.com/gambitsunob?ref=ghoofman.com" target="_blank" rel="noreferrer"&gt;Garrett Hoofman&lt;/a&gt; approached me about competing shortly after it was announced on gdn. I said yes, and Garrett began preparing an empty project for the jam.&lt;/p&gt;</description></item><item><title>TAGJam10</title><link>https://ghoofman.com/tagjam10/</link><pubDate>Thu, 15 May 2014 14:10:00 +0000</pubDate><guid>https://ghoofman.com/tagjam10/</guid><description>&lt;p&gt;The TAGjam10 event happened from May 2nd to May 12th lasting a total of 10 days. That&amp;rsquo;s quite a bit longer than your typical game jam which will usually last about 48 hours. I relished it.&lt;/p&gt;
&lt;p&gt;In 48 hours time you can create some interesting mechanics, or a cool plot twist, but it&amp;rsquo;s always hurried, and always a mess of code. With 10 days time it allowed for more polish, more experimentation, and a more thourough understanding of the code.&lt;/p&gt;</description></item><item><title>Android NDK</title><link>https://ghoofman.com/android-ndk/</link><pubDate>Wed, 23 Oct 2013 23:47:09 +0000</pubDate><guid>https://ghoofman.com/android-ndk/</guid><description>&lt;p&gt;&lt;span style="font-size:0.5em"&gt;This is an updated post from the &lt;a href="http://www.opifexentertainment.com/Blog/Post/TheAndroidNDK" target="_blank" rel="noreferrer"&gt;OPifex Entertainment&lt;/a&gt; blog.&lt;/span&gt;&lt;br&gt;
The Android NDK can be a complicated beast to setup when you first jump into it. This short guide will help you with some of the pitfalls that I found.&lt;/p&gt;

&lt;h3 class="relative group"&gt;What do you need to get started?
 &lt;div id="what-do-you-need-to-get-started" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-do-you-need-to-get-started" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://ghoofman.com/content/images/opifex-ndk.zip" &gt;Example Solution&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.android.com/sdk/index.html" target="_blank" rel="noreferrer"&gt;The Android SDK&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.android.com/tools/sdk/ndk/index.html" target="_blank" rel="noreferrer"&gt;The Android NDK&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://ant.apache.org/bindownload.cgi" target="_blank" rel="noreferrer"&gt;Apache Ant Compiler&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;An Android Device(&lt;em&gt;Recomended&lt;/em&gt;) or an Android Emulator&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Download all of the above zip files and extract them. I chose to extract each of them to my local C Drive:&lt;/p&gt;</description></item><item><title>Splat!</title><link>https://ghoofman.com/splat/</link><pubDate>Sat, 12 Mar 2011 00:00:00 +0000</pubDate><guid>https://ghoofman.com/splat/</guid><description>&lt;p&gt;Take control of Blob Man and explore planet-like canvases filled with crazy paint creatures. Catch the small worms of paint as they dart around in order to change your color, and then hunt down monsters in order to squish them out of existence! As an action-oriented game, you&amp;rsquo;ll get intense game play while also challenging your brain by mixing and matching colors. When&amp;rsquo;s the last time you got to play with this much paint?&lt;/p&gt;</description></item></channel></rss>