<?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>Forem: Prathamesh Deshmukh</title>
    <description>The latest articles on Forem by Prathamesh Deshmukh (@prathamesh_phy).</description>
    <link>https://forem.com/prathamesh_phy</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%2F3615824%2F3f2d67d9-adf0-4db1-8724-13577194e9ff.jpg</url>
      <title>Forem: Prathamesh Deshmukh</title>
      <link>https://forem.com/prathamesh_phy</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/prathamesh_phy"/>
    <language>en</language>
    <item>
      <title>I Finally Built an Interactive Demo for My 2018 Preprint on Transforming Tupper's Formula</title>
      <dc:creator>Prathamesh Deshmukh</dc:creator>
      <pubDate>Mon, 17 Nov 2025 15:51:05 +0000</pubDate>
      <link>https://forem.com/prathamesh_phy/i-finally-built-an-interactive-demo-for-my-2018-preprint-on-transforming-tuppers-formula-108j</link>
      <guid>https://forem.com/prathamesh_phy/i-finally-built-an-interactive-demo-for-my-2018-preprint-on-transforming-tuppers-formula-108j</guid>
      <description>&lt;p&gt;Hello DEV community! I'm Prathamesh Deshmukh, and I'm excited to finally share a project I've been meaning to build for years.&lt;/p&gt;

&lt;p&gt;Back in 2018, I wrote a preprint titled "Transformation of the pixels in Tupper's self-referential formula." It's based on the famous formula by Tupper that plots a bitmap of itself.&lt;/p&gt;

&lt;p&gt;But as I noted in my preprint, the self-plotting isn't the only amazing part. The formula can actually plot &lt;em&gt;every possible&lt;/em&gt; $$106 \times 17$$ pixel combination. This led me to my core research question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"If there is some graphical formation at a particular value of k, then what can be done to change the graphical formation or to change its position?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;My preprint (which you can find in the repo) was my answer to that question. I showed that you can perform all sorts of transformations—and even create animations—just by doing simple arithmetic on the giant &lt;code&gt;k&lt;/code&gt;-value.&lt;/p&gt;

&lt;p&gt;I finally had some free time, so I built the interactive demo I always imagined for it.&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 The Live Demo
&lt;/h2&gt;

&lt;p&gt;Experience the algorithm in action! The interface is built with vanilla JS (&lt;code&gt;BigInt&lt;/code&gt; is a lifesaver) and Tailwind CSS.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://prathameshnium.github.io/TupperTransformer/" rel="noopener noreferrer"&gt;Click here to open the live demo&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What My Research Can Do
&lt;/h2&gt;

&lt;p&gt;My preprint showed two main ideas:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; How to change any graphical formation into another by applying simple operations to &lt;code&gt;k&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt; How these transformations can be used as "frames" to create a film or motion picture.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This means you can represent all possible $$106 \times 17$$ graphical formations and all their possible variations. In short, it's a mathematical form of the "Library of Babel" but for bitmap films.&lt;/p&gt;

&lt;h2&gt;
  
  
  About the New Demo
&lt;/h2&gt;

&lt;p&gt;The demo is designed to let you explore all the concepts from my paper.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Transform &amp;amp; Load (The Main Panel)
&lt;/h3&gt;

&lt;p&gt;This is the main editor. You can load static examples like the &lt;strong&gt;UFO (Center)&lt;/strong&gt; or &lt;strong&gt;Tupper's&lt;/strong&gt; self-plot and then directly apply the transformation formulas from the paper.&lt;/p&gt;

&lt;p&gt;The best part is the "hold-to-animate" feature. If you click and hold a "Move" button, it will create a live animation. If you hold it for one second, the animation "latches" and will keep playing, creating the continuous "film" I described.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Draw
&lt;/h3&gt;

&lt;p&gt;This panel demonstrates the reverse of the formula. You can &lt;strong&gt;draw freely on the canvas&lt;/strong&gt; by clicking and dragging. As you draw, the &lt;strong&gt;K-Value&lt;/strong&gt; in the text box updates in real-time. This is the live calculation of your formula:&lt;br&gt;
$$k^{\prime}=k\pm17(2^{i-1})$$&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Demos &amp;amp; Examples
&lt;/h3&gt;

&lt;p&gt;This tab showcases the two major examples from the preprint:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Animation Demo (Eg3.1):&lt;/strong&gt; This plays the "Top-Left UFO" animation. It's a simple loop that repeatedly applies the "move right" formula, $$k^{n}= k\times2^{n\times17}$$.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interactive Tetris (Eg3.2):&lt;/strong&gt; This is the most complex concept. It loads a scene with "resting" pieces (&lt;code&gt;kr&lt;/code&gt;) and a single "L-piece" (&lt;code&gt;ks&lt;/code&gt;). The controls in this demo &lt;em&gt;only&lt;/em&gt; transform &lt;code&gt;ks&lt;/code&gt;, leaving &lt;code&gt;kr&lt;/code&gt; untouched. This demonstrates the "Different transformation on the individual Pixar" (Equation B/C) concept from the preprint.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Thanks for checking it out! This was a real passion project for me, and it was a lot of fun to finally build a proper interface for my research.&lt;/p&gt;

&lt;p&gt;You can find the full preprint and all the source code on GitHub:&lt;br&gt;
&lt;a href="https://github.com/prathameshnium/TupperTransformer" rel="noopener noreferrer"&gt;&lt;strong&gt;https://github.com/prathameshnium/TupperTransformer&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>javascript</category>
      <category>math</category>
      <category>algorithms</category>
    </item>
  </channel>
</rss>
