<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://bradmcnew.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://bradmcnew.github.io/" rel="alternate" type="text/html" /><updated>2025-09-27T03:48:48+00:00</updated><id>https://bradmcnew.github.io/feed.xml</id><title type="html">Brad McNew - Portfolio</title><subtitle>CS Student &amp; Full-Stack Developer - Portfolio showcasing projects in web development, AI/ML, and technical consulting</subtitle><author><name>Brad McNew</name><email>mcnewbrad@gmail.com</email></author><entry><title type="html">Axite AI: A Python Agent for Sim2Real Sensor Validation</title><link href="https://bradmcnew.github.io/posts/2025/02/axite-ai/" rel="alternate" type="text/html" title="Axite AI: A Python Agent for Sim2Real Sensor Validation" /><published>2025-02-01T00:00:00+00:00</published><updated>2025-02-01T00:00:00+00:00</updated><id>https://bradmcnew.github.io/posts/2025/02/axite-ai</id><content type="html" xml:base="https://bradmcnew.github.io/posts/2025/02/axite-ai/"><![CDATA[<p>In the winter of 2025, I developed Axite AI, a Python-based software agent designed to validate simulated robotics environments against real-world sensor data. The core of the project was to create a seamless workflow for logging, synchronizing, and analyzing sensor streams for sim-to-real differential analysis.</p>

<h2 id="the-problem">The Problem</h2>

<p>One of the biggest challenges in robotics is the “sim-to-real gap,” where behaviors that work perfectly in a simulation fail in the real world. This is often due to subtle differences in sensor readings. Axite AI was built to identify these discrepancies automatically.</p>

<h2 id="the-implementation">The Implementation</h2>

<p>The system consisted of a lightweight Python agent that attaches to a robot’s onboard computer. Its primary responsibilities were:</p>

<ol>
  <li><strong>Sensor Interfacing:</strong> The agent interfaced with various sensors, including the IMU, LiDAR, and motor encoders.</li>
  <li><strong>Real-time Logging:</strong> It used the Rerun SDK to log and stream structured sensor data in real time. This allowed for live visualization of the robot’s state.</li>
  <li><strong>Data Synchronization:</strong> The agent streamed the data via WebSockets to a server running on AWS, where it was synchronized with corresponding simulation data.</li>
</ol>

<p>On the server, an automated process performed differential comparisons between the simulated and real-world trajectories. It flagged any deviations that exceeded configurable thresholds, providing valuable feedback to refine the robot’s control policies and simulation parameters.</p>

<h2 id="tech-stack">Tech Stack</h2>

<ul>
  <li><strong>Core Language:</strong> Python</li>
  <li><strong>Visualization &amp; Logging:</strong> Rerun</li>
  <li><strong>Communication:</strong> WebSockets</li>
  <li><strong>Cloud Infrastructure:</strong> AWS</li>
  <li><strong>Containerization:</strong> Docker</li>
</ul>

<p>This project was a deep dive into robotics, data streaming, and the challenges of bridging the gap between simulation and reality.</p>]]></content><author><name>Brad McNew</name><email>mcnewbrad@gmail.com</email></author><category term="Python" /><category term="Robotics" /><category term="Sim2Real" /><category term="Rerun" /><category term="WebSockets" /><category term="AWS" /><summary type="html"><![CDATA[In the winter of 2025, I developed Axite AI, a Python-based software agent designed to validate simulated robotics environments against real-world sensor data. The core of the project was to create a seamless workflow for logging, synchronizing, and analyzing sensor streams for sim-to-real differential analysis.]]></summary></entry><entry><title type="html">Building RAG-Enabled Chatbots for Local Businesses</title><link href="https://bradmcnew.github.io/posts/2024/09/embedded-ai-chat/" rel="alternate" type="text/html" title="Building RAG-Enabled Chatbots for Local Businesses" /><published>2024-09-12T00:00:00+00:00</published><updated>2024-09-12T00:00:00+00:00</updated><id>https://bradmcnew.github.io/posts/2024/09/embedded-ai-chat</id><content type="html" xml:base="https://bradmcnew.github.io/posts/2024/09/embedded-ai-chat/"><![CDATA[<p>During the fall of 2024, I developed a project to bring the power of AI to small and medium-sized businesses (SMBs) by creating custom, retrieval-augmented generation (RAG) chatbots for their websites. The goal was to provide customers with instant, context-aware answers to their questions based on the business’s own data.</p>

<h2 id="the-challenge">The Challenge</h2>

<p>Many local businesses struggle to manage customer inquiries effectively. Information is often scattered across FAQs, policy pages, and product catalogs. This project aimed to centralize that knowledge and make it accessible through a simple chat interface.</p>

<h2 id="the-solution">The Solution</h2>

<p>I designed a data pipeline using n8n.io to automate the process of scraping, chunking, and embedding business data. Here’s how it worked:</p>

<ol>
  <li><strong>Data Scraping:</strong> The pipeline would scrape relevant pages from a business’s website.</li>
  <li><strong>Document Chunking:</strong> The scraped text was broken down into smaller, manageable chunks.</li>
  <li><strong>Vector Embedding:</strong> I used OpenAI’s embedding models to convert these chunks into vector representations.</li>
  <li><strong>Indexing:</strong> The vectors were then stored and indexed in a Pinecone vector database for efficient similarity search.</li>
</ol>

<p>The chatbot itself was a RAG workflow that combined vector search with GPT-4 completions. When a user asked a question, the system would first search the Pinecone database for the most relevant document chunks and then feed that context to GPT-4 to generate a grounded, accurate answer.</p>

<h2 id="tech-stack">Tech Stack</h2>

<ul>
  <li><strong>Orchestration:</strong> n8n</li>
  <li><strong>AI &amp; Embeddings:</strong> OpenAI API</li>
  <li><strong>Vector Database:</strong> Pinecone</li>
  <li><strong>Backend:</strong> Node.js, TypeScript</li>
  <li><strong>Communication:</strong> Webhooks</li>
</ul>

<p>This project was a fantastic learning experience in applied AI and building practical solutions for real-world problems.</p>]]></content><author><name>Brad McNew</name><email>mcnewbrad@gmail.com</email></author><category term="AI" /><category term="Chatbots" /><category term="RAG" /><category term="n8n" /><category term="OpenAI" /><category term="Pinecone" /><summary type="html"><![CDATA[During the fall of 2024, I developed a project to bring the power of AI to small and medium-sized businesses (SMBs) by creating custom, retrieval-augmented generation (RAG) chatbots for their websites. The goal was to provide customers with instant, context-aware answers to their questions based on the business’s own data.]]></summary></entry></feed>