<?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: Dev Vishwas</title>
    <description>The latest articles on DEV Community by Dev Vishwas (@devishwas).</description>
    <link>https://dev.to/devishwas</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%2F3835542%2F41fbf72c-a32d-4561-9054-ed11bb8b8898.jpeg</url>
      <title>DEV Community: Dev Vishwas</title>
      <link>https://dev.to/devishwas</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/devishwas"/>
    <language>en</language>
    <item>
      <title>Moyacchi ; Your AI Eco Companion</title>
      <dc:creator>Dev Vishwas</dc:creator>
      <pubDate>Sun, 19 Apr 2026 22:43:17 +0000</pubDate>
      <link>https://dev.to/devishwas/moyacchi-your-ai-eco-companion-487n</link>
      <guid>https://dev.to/devishwas/moyacchi-your-ai-eco-companion-487n</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for &lt;a href="https://dev.to/challenges/weekend-2026-04-16"&gt;Weekend Challenge: Earth Day Edition&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This is a submission for Weekend Challenge: Earth Day Edition&lt;/p&gt;

&lt;h1&gt;
  
  
  What I Built
&lt;/h1&gt;

&lt;p&gt;Most people have no idea what their daily choices are actually doing to the environment. Not because they don’t care ; but because nothing makes it visible, personal, or worth coming back to.&lt;/p&gt;

&lt;p&gt;Moyacchi is my answer to that. It is an AI-powered eco companion that tracks your daily habits across three dimensions ; transportation, food, and energy use ; analyses their cumulative environmental impact using Google Gemini, and reflects that progress through a companion that literally evolves with you. Seed. Sprout. Bloom. Glow.&lt;/p&gt;

&lt;p&gt;The goal was never to build another carbon calculator. It was to build something that feels alive. Something you actually want to open tomorrow.&lt;/p&gt;

&lt;p&gt;Beyond the core habit loop, Moyacchi includes Green-Sight ; a real-time OCR scanner that reads any product label, flags harmful ingredients, identifies packaging material and waste classification. A conversational AI eco coach. A live air quality dashboard for any city on earth. And a Journal that doubles as a personal environmental diary, with shareable impact cards for every entry.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/y_8WKch14kQ"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/radmm" rel="noopener noreferrer"&gt;
        radmm
      &lt;/a&gt; / &lt;a href="https://github.com/radmm/Moyacchi" rel="noopener noreferrer"&gt;
        Moyacchi
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Your eco companion - Moyacchi.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/75aef32551aa6ec9c9fc78dcbf186cd04ed5a33114bb606d4c305e457c081765/68747470733a2f2f63646e2e646973636f72646170702e636f6d2f6174746163686d656e74732f313436333232373232373530373532373737362f313439353535323030313634363533303636332f556e7469746c656434305f32303236303432303033333935372e6a70673f65783d36396536613864372669733d363965353537353726686d3d3563313332366639663932393031313436626661636338643266623931666539326465616166663061303639333033613030343166643863323433623364386426"&gt;&lt;img src="https://camo.githubusercontent.com/75aef32551aa6ec9c9fc78dcbf186cd04ed5a33114bb606d4c305e457c081765/68747470733a2f2f63646e2e646973636f72646170702e636f6d2f6174746163686d656e74732f313436333232373232373530373532373737362f313439353535323030313634363533303636332f556e7469746c656434305f32303236303432303033333935372e6a70673f65783d36396536613864372669733d363965353537353726686d3d3563313332366639663932393031313436626661636338643266623931666539326465616166663061303639333033613030343166643863323433623364386426"&gt;&lt;/a&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Moyacchi ; Your AI Eco Companion&lt;/h3&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Track your habits. Understand your impact. Grow together.&lt;/strong&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Features&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Daily Stack Analysis&lt;/strong&gt;
Log your day across three dimensions ; transportation, food, and energy use. Moyacchi analyses the entire day at once using Google Gemini Flash and returns a score, performance grade, behavioral swaps, and a real-world impact metaphor.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Evolving Companion&lt;/strong&gt;
Moyacchi grows with your progress through four stages ; Seed, Sprout, Bloom, Glow. The better your habits, the more he evolves.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Green-Sight OCR&lt;/strong&gt;
Snap any product label. Moyacchi identifies harmful ingredients, packaging material, waste classification, and disposal guidance in real time.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;AI Eco Coach&lt;/strong&gt;
A conversational AI coach powered by Gemini. Ask anything about sustainable living ; no lectures, no guilt.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Sky Dashboard&lt;/strong&gt;
Live air quality for any city on earth. AQI, six pollutants, pollen levels ; powered by Open-Meteo, completely free and open.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Journal&lt;/strong&gt;
A chronological record of your environmental footprint grouped by…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/radmm/Moyacchi" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h1&gt;
  
  
  How I Built It
&lt;/h1&gt;

&lt;p&gt;The frontend is React 19 with TypeScript, styled with Tailwind CSS v4. Firebase handles Google authentication and real-time Firestore persistence, with security rules strictly scoping every read and write to the authenticated user. Guest users get full functionality through localStorage with seamless cloud sync on sign in.&lt;/p&gt;

&lt;p&gt;All AI inference runs through Google Gemini Flash. Every model call is structured against a strict JSON schema ; habit analysis, image OCR, chat, and air quality interpretation all return typed, validated, reliable output. No hallucinated formats, no unparseable responses.&lt;/p&gt;

&lt;p&gt;The Sky Dashboard pulls live AQI, pollutant, and pollen data from the Open-Meteo API ; completely free, no key required, globally accurate.&lt;/p&gt;

&lt;p&gt;The mascot is a pure SVG rendered directly in JSX with path morphing and mood animations handled by Framer Motion. No image files. Just code.&lt;br&gt;
The entire application was designed, built, and shipped in one day.&lt;/p&gt;

&lt;h1&gt;
  
  
  Prize Categories
&lt;/h1&gt;

&lt;p&gt;Best Use of Google Gemini ; Gemini Flash powers every intelligent layer of Moyacchi. Habit analysis with structured JSON schemas, Green-Sight OCR for real-time product label scanning, a multi-turn conversational eco coach, and image-based habit identification from photos. Gemini is not a feature ; it is the backbone.&lt;/p&gt;

&lt;p&gt;Built by Dev Vishwas ; &lt;a class="mentioned-user" href="https://dev.to/devishwas"&gt;@devishwas&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
    </item>
    <item>
      <title>Building a Quantum ESPRESSO GUI on a Tablet</title>
      <dc:creator>Dev Vishwas</dc:creator>
      <pubDate>Fri, 20 Mar 2026 19:39:14 +0000</pubDate>
      <link>https://dev.to/devishwas/building-a-quantum-espresso-gui-on-a-tablet-336j</link>
      <guid>https://dev.to/devishwas/building-a-quantum-espresso-gui-on-a-tablet-336j</guid>
      <description>&lt;p&gt;So here’s something I didn’t expect to be writing about this semester.&lt;/p&gt;

&lt;p&gt;I’m a first-year CSE student. I do most of my coding practice on a tablet with Google Colab open in the browser. And somehow, over the past few weeks, I ended up building a working simulation of &lt;strong&gt;BURAI 3&lt;/strong&gt;; the GUI for Quantum ESPRESSO, specifically for visualizing the band gap of MoSe2 (Molybdenum Diselenide). A real 2D material being studied for next-gen transistors and solar cells.&lt;/p&gt;

&lt;p&gt;Full disclosure upfront: I referenced published papers, leaned on the Three.js documentation, used AI assistance, and took workflow inspiration from existing GitHub repos. But I understood what went into it, and that’s what I actually want to talk about.&lt;/p&gt;

&lt;p&gt;Because here’s the thing - nobody tells you in first year. Understanding something and building it from scratch are two completely different skills, and both are valid.&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%2Fiw53a5zfcqq4869xg0j0.png" 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%2Fiw53a5zfcqq4869xg0j0.png" alt=" " width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Why This Project
&lt;/h1&gt;

&lt;p&gt;My professor mentioned MoSe2 band structure project. Something about how it has a direct band gap in monolayer form but an indirect one in bulk. Didn’t fully get it at the time, but the phrase “indirect-to-direct transition” stuck with me.&lt;/p&gt;

&lt;p&gt;I came back to my dorm, looked it up, fell down a rabbit hole, found Quantum ESPRESSO, then found BURAI 3. Grey interface, teal and yellow atoms, old-school panel on the left. It looked like something a researcher would actually use.&lt;/p&gt;

&lt;p&gt;I thought: can I build something that looks and works like this, but runs in a single Colab cell on a tablet?&lt;br&gt;
Turns out yes. &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%2Fa3kkx5lr1yla7z7y7ikk.png" 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%2Fa3kkx5lr1yla7z7y7ikk.png" alt=" " width="800" height="515"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;
  
  
  What I Actually Built
&lt;/h1&gt;

&lt;p&gt;Before anything technical, let me be clear about what this is and what it isn’t.&lt;/p&gt;
&lt;h2&gt;
  
  
  What it is:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A browser-based simulation of the BURAI 3 interface&lt;/li&gt;
&lt;li&gt;A 3D interactive crystal structure viewer using Three.js&lt;/li&gt;
&lt;li&gt;A band structure plot with real published gap values for MoSe2&lt;/li&gt;
&lt;li&gt;Physics controls that actually change the graph (Monolayer/Bulk, PBE/HSE06/GW, SOC on/off)&lt;/li&gt;
&lt;li&gt;Runs entirely in one Google Colab cell&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  What it isn’t:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A real Quantum ESPRESSO installation running pw.x&lt;/li&gt;
&lt;li&gt;A live DFT calculation (that needs a cluster and hours of runtime)&lt;/li&gt;
&lt;li&gt;Something I could have built entirely on my own at this stage&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That last point matters. I see posts where people oversell what they built and it always feels off. So: built with assistance, understood it, iterated on it, learned a lot.&lt;/p&gt;
&lt;h1&gt;
  
  
  The Physics
&lt;/h1&gt;

&lt;p&gt;Band gap is the energy distance between where electrons normally sit (valence band) and where they need to go to conduct electricity (conduction band). &lt;strong&gt;MoSe2&lt;/strong&gt; sits around &lt;strong&gt;1.44 to 1.55 eV&lt;/strong&gt;, comfortably in semiconductor range.&lt;/p&gt;

&lt;p&gt;The reason the method choice matters is that &lt;strong&gt;PBE&lt;/strong&gt; (the standard DFT approximation) consistently underestimates band gaps by 10 to 30 percent. &lt;strong&gt;HSE06&lt;/strong&gt; corrects for this. &lt;strong&gt;GW&lt;/strong&gt; gets closest to experiment but is expensive to run. The viewer lets you switch between all three and see the difference directly.&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%2Fd1z8cf35ddn6ebrqdkki.png" 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%2Fd1z8cf35ddn6ebrqdkki.png" alt=" " width="800" height="515"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;
  
  
  The Prototype - What It Actually Looks Like
&lt;/h1&gt;

&lt;p&gt;When you run the cell, you land on the 3D structure view first. The BURAI orange top bar, the dark tab bar with &lt;em&gt;“Mini Project”&lt;/em&gt; and &lt;em&gt;“mose2_final”&lt;/em&gt; tabs, and the grey viewport with the crystal rotating in front of you. Mo atoms in teal, Se atoms in yellow, bonds connecting them.&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%2F909jrthil0krum2p2m1d.png" 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%2F909jrthil0krum2p2m1d.png" alt=" " width="800" height="515"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The band structure view section; the plot sits in the viewport — red solid bands, orange dashed SOC-split bands, a cyan shaded region marking the gap, and an arrow annotation on the right showing the exact gap value. Below the plot, the k-point labels: Γ M K Γ A.&lt;/p&gt;

&lt;p&gt;The right panel has all the controls. Change any of them and the plot redraws immediately:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Monolayer vs Bulk&lt;/strong&gt; — the band shapes shift, the gap type flips between direct and indirect.&lt;/li&gt;
&lt;/ul&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%2Ff3o3kag43toczl8rv5dn.png" 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%2Ff3o3kag43toczl8rv5dn.png" alt=" " width="800" height="515"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;PBE / HSE06 / GW&lt;/strong&gt; — the gap value changes and a note appears at the bottom explaining the accuracy tradeoff for that method.&lt;/li&gt;
&lt;/ul&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%2Fl02kbc30sohvw3r1mw1d.png" 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%2Fl02kbc30sohvw3r1mw1d.png" alt=" " width="800" height="515"&gt;&lt;/a&gt;&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%2Flsmlcq8djr0cm7khj501.png" 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%2Flsmlcq8djr0cm7khj501.png" alt=" " width="800" height="515"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SOC on/off&lt;/strong&gt; — the top valence band visibly splits into two branches when you turn it on.&lt;/li&gt;
&lt;/ul&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%2F31fqcn6xja3490n31aee.png" 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%2F31fqcn6xja3490n31aee.png" alt=" " width="800" height="515"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Default on load: &lt;strong&gt;Monolayer + HSE06 + SOC ON = 1.55 eV&lt;/strong&gt;. That’s the closest match to the experimental optical gap for monolayer MoSe2.&lt;/p&gt;
&lt;h1&gt;
  
  
  Languages and Tools used
&lt;/h1&gt;

&lt;p&gt;Each language has one job and sticks to it.&lt;br&gt;
Python delivers the whole thing to Colab’s output. All it needs is one call. That’s its entire role here.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;HTML is the structure&lt;/strong&gt; - the window layout, the top bar, the panels, the tabs. Matching BURAI meant getting specific: #cccccc grey, #3a3a3a tab bar, the exact button shapes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CSS is purely visual&lt;/strong&gt; - the orange gradient, the old-school inset borders, the toggle states.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;JavaScript&lt;/strong&gt; is where the project actually lives. The 3D viewer, the band plot, all the toggle logic. Switch from PBE to HSE06 and JavaScript catches it, grabs the new value, wipes the canvas, and redraws everything. Feels instant.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Three.js&lt;/strong&gt; handles the 3D crystal. It wraps WebGL (the browser’s 3D engine) into something actually approachable; so you’re placing atoms and setting up lights, along with drag interactions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;HTML Canvas API&lt;/strong&gt; draws the band structure graph. No library, it’s the browser’s built-in 2D drawing tools. Each line, label, and shaded region on that plot is a direct canvas command.&lt;/p&gt;
&lt;h1&gt;
  
  
  A Bit of Three.js
&lt;/h1&gt;

&lt;p&gt;Here’s what placing an atom in the 3D viewer actually looks like:&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%2Fjz5clhjpptqi742ks476.png" 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%2Fjz5clhjpptqi742ks476.png" alt=" " width="800" height="515"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Mo atom — teal sphere at its crystal position&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;moGeometry&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;THREE&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;SphereGeometry&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;0.42&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;moMaterial&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;THREE&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;MeshPhongMaterial&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mh"&gt;0x22aacc&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;     &lt;span class="c1"&gt;// teal — matches BURAI exactly&lt;/span&gt;
  &lt;span class="na"&gt;shininess&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;90&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;specular&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mh"&gt;0x99ddee&lt;/span&gt;   &lt;span class="c1"&gt;// gives it that shiny lit look&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;moAtom&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;THREE&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Mesh&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;moGeometry&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;moMaterial&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;moAtom&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;position&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;y&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;z&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// fractional crystal coordinates&lt;/span&gt;
&lt;span class="nx"&gt;scene&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;moAtom&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Honest Limitations
&lt;/h1&gt;

&lt;p&gt;The gap values come from published literature, not a live calculation. The band shapes are drawn from manually placed coordinates with smoothing. The BURAI interface is a visual simulation.&lt;/p&gt;

&lt;p&gt;The honest pitch: this is an interactive visualization of MoSe2 band structure physics using literature values, built to explore how dimensionality, functional, and SOC choices affect band gap results — in a UI that mirrors real BURAI output.&lt;/p&gt;

&lt;p&gt;For a first-year project, that’s a pretty good starter.&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%2Fsh309olfsxle8dw8iqvx.png" 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%2Fsh309olfsxle8dw8iqvx.png" alt=" " width="800" height="515"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  What I Took Away
&lt;/h1&gt;

&lt;p&gt;The band structure is literally just a plot of allowed electron energies against crystal momentum. Once that clicked, the whole subject stopped being intimidating. And HTML, CSS, and JavaScript can build things that look like serious scientific software if you care enough about the details.&lt;/p&gt;

&lt;p&gt;Sources: &lt;em&gt;Liu et al. PRB 88, 085433 (2013) · github.com · threejs.org docs  etc&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Thanks for reading. Corrections welcome.&lt;/p&gt;

&lt;p&gt;Dev Vishwas | First-year B.Tech CSE&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>python</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
