<?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: Abdul Basir</title>
    <description>The latest articles on DEV Community by Abdul Basir (@basir5101).</description>
    <link>https://dev.to/basir5101</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F536302%2F1894c3bf-7cf4-410a-b39a-2d7a8724942e.png</url>
      <title>DEV Community: Abdul Basir</title>
      <link>https://dev.to/basir5101</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/basir5101"/>
    <language>en</language>
    <item>
      <title>I built a 3D Physics Engine for the Browser because textbooks are too flat 💎</title>
      <dc:creator>Abdul Basir</dc:creator>
      <pubDate>Sun, 15 Mar 2026 08:34:10 +0000</pubDate>
      <link>https://dev.to/basir5101/i-built-a-3d-physics-engine-for-the-browser-because-textbooks-are-too-flat-295f</link>
      <guid>https://dev.to/basir5101/i-built-a-3d-physics-engine-for-the-browser-because-textbooks-are-too-flat-295f</guid>
      <description>&lt;p&gt;Let’s be honest: trying to understand Solid State Physics from a 2D textbook is a nightmare.&lt;/p&gt;

&lt;p&gt;I’m currently finishing my M.Sc. in Physics, and like many students, I spent hours squinting at diagrams of "Brillouin Zones" and "Reciprocal Space." These are complex, 3D mathematical shapes that define how electrons move in a crystal. On paper, they look like a mess of overlapping lines. In reality, they are beautiful, symmetric architectures.&lt;/p&gt;

&lt;p&gt;I decided that if I couldn't find a way to see them clearly, I’d build one.&lt;/p&gt;

&lt;p&gt;That’s how &lt;a href="//solidstate3d.com"&gt;SolidState3D&lt;/a&gt; was born.&lt;/p&gt;

&lt;p&gt;The Stack&lt;br&gt;
I wanted the tool to be accessible to anyone with a browser—no heavy software installs or Python environments required.&lt;/p&gt;

&lt;p&gt;Framework: Next.js (App Router)&lt;/p&gt;

&lt;p&gt;3D Rendering: React Three Fiber / Three.js&lt;/p&gt;

&lt;p&gt;Styling: Tailwind CSS&lt;/p&gt;

&lt;p&gt;The "Brain": Custom geometric logic to calculate vertices for the 14 Bravais Lattices and their corresponding Brillouin Zones.&lt;/p&gt;

&lt;p&gt;The Biggest Challenge: The "Reciprocal Flip"&lt;br&gt;
The hardest part wasn't the UI; it was the math. In crystallography, the "Reciprocal" of a Body-Centered Cubic (BCC) lattice is actually a Face-Centered Cubic (FCC) shape.&lt;/p&gt;

&lt;p&gt;To render the First Brillouin Zone, I had to calculate the Wigner-Seitz cell of the reciprocal lattice. This involved:&lt;/p&gt;

&lt;p&gt;Generating high-symmetry points (Γ,H,N,P).&lt;/p&gt;

&lt;p&gt;Using ConvexGeometry to wrap a mesh around those calculated vertices.&lt;/p&gt;

&lt;p&gt;Ensuring everything scales dynamically when a user changes the lattice constant.&lt;/p&gt;

&lt;p&gt;What’s inside?&lt;br&gt;
Beyond just looking at atoms, I wanted to build a professional toolkit:&lt;/p&gt;

&lt;p&gt;Miller Index Visualizer: You type in (hkl), and it slices the crystal in real-time.&lt;/p&gt;

&lt;p&gt;CIF Viewer: You can drop a .cif file into the browser and it renders the structure instantly.&lt;/p&gt;

&lt;p&gt;Crystal-AI: I integrated a chat interface to help users identify materials and understand the underlying physics.&lt;/p&gt;

&lt;p&gt;Why I'm sharing this&lt;br&gt;
I built this under the supervision of my professor, Arpon Chakraborty, at Gopalganj Science and Technology University. It started as a thesis project, but I realized it could help anyone studying Material Science or Physics.&lt;/p&gt;

&lt;p&gt;I’d love for the Dev.to community to take a look. How’s the performance? Is the Three.js implementation smooth on your devices?&lt;/p&gt;

&lt;p&gt;Check it out here: solidstate3d.com&lt;/p&gt;

&lt;p&gt;I’m looking forward to your feedback (and your favorite crystal structures)!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpv1h37isjjdnfbu1y773.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpv1h37isjjdnfbu1y773.jpg" alt=" " width="800" height="1212"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>nextjs</category>
      <category>threejs</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
