<?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 eziosoft</title><link>https://eziosoft.com/posts/</link><description>Recent content in Posts on eziosoft</description><generator>Hugo</generator><language>en</language><lastBuildDate>Fri, 18 Apr 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://eziosoft.com/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>FPS Raytrace: Wolfenstein 3D Clone in Android with Jetpack Compose</title><link>https://eziosoft.com/posts/raytracer-android/</link><pubDate>Fri, 18 Apr 2025 00:00:00 +0000</pubDate><guid>https://eziosoft.com/posts/raytracer-android/</guid><description>&lt;p&gt;A first-person shooter game demo for Android using raycasting rendering with Jetpack Compose. Think Wolfenstein 3D-style gameplay but running on a modern Android device with touch controls and ML-powered enemies.&lt;/p&gt;
&lt;h2 id="what-is-raycasting"&gt;
 What is Raycasting?
 &lt;a class="heading-link" href="#what-is-raycasting"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Raycasting is a rendering technique used in early 3D games like Wolfenstein 3D, Doom, and Duke Nukem 3D. Instead of full 3D polygons, it casts rays from the player&amp;rsquo;s view into a 2D grid map to determine wall heights. This creates a pseudo-3D effect that runs efficiently on limited hardware.&lt;/p&gt;</description></item><item><title>I Taught My Phone to Know I'm Lying on the Couch. Here's How.</title><link>https://eziosoft.com/posts/taught-phone-to-know-lying/</link><pubDate>Fri, 18 Apr 2025 00:00:00 +0000</pubDate><guid>https://eziosoft.com/posts/taught-phone-to-know-lying/</guid><description>&lt;p&gt;I&amp;rsquo;ve been fascinated by real-time signal processing for a while. You know that feeling when you&amp;rsquo;re watching a live graph of sensor data and it wiggles around in response to the real world? That&amp;rsquo;s basically digital sorcery and I love it.&lt;/p&gt;
&lt;p&gt;I was thinking where to get the data and what to classify.&lt;/p&gt;
&lt;p&gt;One day I thought: what if I could make my phone figure out what I&amp;rsquo;m doing, just from its motion sensors?&lt;/p&gt;</description></item><item><title>Real-time MAVLink Drone Monitoring</title><link>https://eziosoft.com/posts/mavlink-stats/</link><pubDate>Fri, 18 Apr 2025 00:00:00 +0000</pubDate><guid>https://eziosoft.com/posts/mavlink-stats/</guid><description>&lt;p&gt;This project provides a real-time MAVLink-based drone monitoring system. It connects to a MAVLink-enabled drone, listens for messages, and visualizes data such as message frequencies, detected systems, and requested data streams via a web interface.&lt;/p&gt;
&lt;h2 id="features"&gt;
 Features
 &lt;a class="heading-link" href="#features"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MAVLink Connection&lt;/strong&gt;: Automatically connects to a MAVLink system and listens for messages&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Live Data Display&lt;/strong&gt;: Shows detected MAVLink systems and components&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Message Frequency Monitoring&lt;/strong&gt;: Tracks expected vs. actual frequencies of MAVLink messages&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;REQUEST_DATA_STREAM Capturing&lt;/strong&gt;: Logs data stream requests from the drone&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Web Interface&lt;/strong&gt;: Real-time dashboard for monitoring&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reset Functionality&lt;/strong&gt;: Allows resetting the collected MAVLink data&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="installation"&gt;
 Installation
 &lt;a class="heading-link" href="#installation"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;h3 id="prerequisites"&gt;
 Prerequisites
 &lt;a class="heading-link" href="#prerequisites"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Python 3.8+&lt;/li&gt;
&lt;li&gt;pip&lt;/li&gt;
&lt;li&gt;MAVProxy or any MAVLink-compatible communication method&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="dependencies"&gt;
 Dependencies
 &lt;a class="heading-link" href="#dependencies"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pip install -r requirements.txt
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="configuration"&gt;
 Configuration
 &lt;a class="heading-link" href="#configuration"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Modify the &lt;code&gt;config.py&lt;/code&gt; file to set the correct drone connection string:&lt;/p&gt;</description></item></channel></rss>