<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Dhananjay kumar Seth</title>
    <description>The latest articles on DEV Community by Dhananjay kumar Seth (@dhananjaykuseth).</description>
    <link>https://dev.to/dhananjaykuseth</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4029199%2Fa4a30e2a-200f-4020-83c1-30344249e089.jpg</url>
      <title>DEV Community: Dhananjay kumar Seth</title>
      <link>https://dev.to/dhananjaykuseth</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dhananjaykuseth"/>
    <language>en</language>
    <item>
      <title>I Built 4 Interactive Engineering Tools You Can Run in Your Browser</title>
      <dc:creator>Dhananjay kumar Seth</dc:creator>
      <pubDate>Tue, 14 Jul 2026 20:06:01 +0000</pubDate>
      <link>https://dev.to/dhananjaykuseth/i-built-4-interactive-engineering-tools-you-can-run-in-your-browser-24nn</link>
      <guid>https://dev.to/dhananjaykuseth/i-built-4-interactive-engineering-tools-you-can-run-in-your-browser-24nn</guid>
      <description>&lt;p&gt;Most engineering concepts live in textbooks and MATLAB scripts — you read about a Fourier transform, a PID loop, or a constellation diagram, but you rarely get to touch one. I'm a game developer by day and an Electronics &amp;amp; Communication Engineer by training, and I kept thinking: why can't these be things you just open in a browser and play with?&lt;/p&gt;

&lt;p&gt;So I built four of them. No installs, no accounts — click a link and start turning knobs. Each one is written from scratch in React + TypeScript with the actual math implemented by hand (no DSP or simulation libraries). Here's what I made and the interesting problem behind each.&lt;/p&gt;

&lt;p&gt;🌊 DSP Signal Lab — real-time FFT in the browser&lt;br&gt;
▶ Live demo: &lt;a href="https://dsp-signal-lab.vercel.app/" rel="noopener noreferrer"&gt;https://dsp-signal-lab.vercel.app/&lt;/a&gt; · Code: &lt;a href="https://github.com/Dhananjay-ku-seth/dsp-signal-lab" rel="noopener noreferrer"&gt;https://github.com/Dhananjay-ku-seth/dsp-signal-lab&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A signal generator (sine / square / sawtooth / triangle) feeding a live 2048-point FFT spectrum analyzer, with injectable white noise and switchable digital filters (lowpass / highpass / bandpass / notch).&lt;/p&gt;

&lt;p&gt;The fun part: the FFT is real, not a fake animation. It uses the Web Audio API's AnalyserNode, so when you pick a square wave you can watch the odd harmonics appear in the spectrum, then sweep a lowpass cutoff down and see them get attenuated in real time. Switch to microphone mode and whistle — the peak tracker finds your pitch.&lt;/p&gt;

&lt;p&gt;🤖 PID Control Playground — tune a line-follower robot live&lt;br&gt;
▶ Live demo: &lt;a href="https://pid-control-playground.vercel.app/" rel="noopener noreferrer"&gt;https://pid-control-playground.vercel.app/&lt;/a&gt; · Code: &lt;a href="https://github.com/Dhananjay-ku-seth/pid-control-playground" rel="noopener noreferrer"&gt;https://github.com/Dhananjay-ku-seth/pid-control-playground&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A top-down robot follows a winding track using a real PID loop on its cross-track error. You drag the Kp / Ki / Kd sliders and watch the effect immediately.&lt;/p&gt;

&lt;p&gt;Under the hood it's a double-integrator plant with sub-stepped Euler integration and integral anti-windup — so it behaves like a real control system. Set the derivative gain to zero and the robot oscillates around the line forever; add it back and the wobble damps out. There's a ⚡ disturbance button to kick it off course and watch the loop recover, plus a live error-vs-time strip chart.&lt;/p&gt;

&lt;p&gt;🔌 Logic Circuit Simulator — drag, wire, and watch signals flow&lt;br&gt;
▶ Live demo: &lt;a href="https://logic-circuit-sim.vercel.app/" rel="noopener noreferrer"&gt;https://logic-circuit-sim.vercel.app/&lt;/a&gt; · Code: &lt;a href="https://github.com/Dhananjay-ku-seth/logic-circuit-sim" rel="noopener noreferrer"&gt;https://github.com/Dhananjay-ku-seth/logic-circuit-sim&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Place gates (AND / OR / NOT / NAND / NOR / XOR / XNOR), wire them port-to-port, toggle the inputs, and see the signals propagate live — with an auto-generated truth table.&lt;/p&gt;

&lt;p&gt;The tricky bit was supporting sequential circuits, not just combinational ones. A naive left-to-right evaluator deadlocks on a feedback loop like an SR latch. I used an iterative relaxation solver (40 passes) that evaluates combinational logic instantly and converges feedback loops, so latches and flip-flops actually settle. Load the SR-latch example and toggle Set / Reset to see it work.&lt;/p&gt;

&lt;p&gt;📡 Comms Simulator — modulation, constellations, and BER&lt;br&gt;
▶ Live demo: &lt;a href="https://comms-simulator-pi.vercel.app/" rel="noopener noreferrer"&gt;https://comms-simulator-pi.vercel.app/&lt;/a&gt; · Code: &lt;a href="https://github.com/Dhananjay-ku-seth/comms-simulator" rel="noopener noreferrer"&gt;https://github.com/Dhananjay-ku-seth/comms-simulator&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Three tabs covering a communication systems course:&lt;/p&gt;

&lt;p&gt;Analog: AM/FM modulation in the time domain, with the AM envelope and over-modulation shown live.&lt;br&gt;
Constellation: BPSK / QPSK / 16-QAM ideal points plus the received cloud over an AWGN channel, with a live symbol-error rate.&lt;br&gt;
BER curve: a Monte-Carlo bit-error-rate simulation (60,000 bits per SNR point) plotted against the theoretical Q-function on a semilog axis.&lt;br&gt;
Everything uses unit-energy symbols, Gray-coded PAM-4 mapping, Box–Muller AWGN, and Q(x) = ½·erfc(x/√2). The satisfying moment is watching the simulated BER curve hug the theoretical one — and seeing it floor out at ~10⁻⁵ because 60k bits can't resolve errors any rarer than that.&lt;/p&gt;

&lt;p&gt;How they're built&lt;br&gt;
Stack: React + TypeScript + Vite, deployed on Vercel.&lt;br&gt;
No black boxes: every FFT, filter, control loop, logic solver, and modulation/demodulation routine is hand-written. The goal was to understand the math, not import it.&lt;br&gt;
Rendering: plain  and SVG — no charting libraries.&lt;br&gt;
Design: a shared dark "lab" aesthetic so they feel like one toolkit.&lt;br&gt;
Why bother?&lt;br&gt;
Because interactive beats static every time. You can read that a PID controller overshoots without derivative gain — or you can drag a slider and watch it happen. I wanted tools a student (or a curious recruiter) could open and immediately get an intuition from.&lt;/p&gt;

&lt;p&gt;If you find these useful or spot something to improve, I'd love to hear it — the repos are open.&lt;/p&gt;

&lt;p&gt;More of my work: &lt;a href="https://dhananjay-kumar-seth.vercel.app/" rel="noopener noreferrer"&gt;https://dhananjay-kumar-seth.vercel.app/&lt;/a&gt; GitHub: &lt;a href="https://github.com/Dhananjay-ku-seth" rel="noopener noreferrer"&gt;https://github.com/Dhananjay-ku-seth&lt;/a&gt; · LinkedIn: &lt;a href="https://www.linkedin.com/in/dhananjay-kumar-seth-4a5b31283/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/dhananjay-kumar-seth-4a5b31283/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks for reading — go break one of the demos. 🔧&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>react</category>
      <category>javascript</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
