<?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/"
  xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
>
  <channel>
    <title>Arvind Rao</title>
    <description>Mathematician / Software Engineer. &lt;a href=&quot;https://x.com/cwcomplex&quot; target=&quot;_blank&quot;&gt;@cwcomplex&lt;/a&gt;.</description>    
    <sy:updatePeriod>daily</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <link>https://rao.im</link>
    <atom:link href="https://rao.im/feed.xml" rel="self" type="application/rss+xml" />
    <lastBuildDate>Fri, 18 Apr 2025 00:00:00 +0200</lastBuildDate>
    
    
      <item>
        <title>Rotate Homogeneous Polynomials</title>
        
        
          <description>&lt;p&gt;Several years ago here on my blog I presented an &lt;a href=&quot;https://rao.im/mathematics/2019/10/25/compute-so3-repns/&quot;&gt;algorithm for rotating homogeneous polynomials&lt;/a&gt; ( in variables $x$, $y$, and $z$ ) by computing representations of $SO(3)$ on $\mathcal{P}_d$, homogeneous polynomials of degree $d$. These representations are matrices in $SO(\mathcal{P}_d)$ and are rotations of  $p \in \mathcal{P}_d$. While writing that &lt;a href=&quot;https://rao.im/mathematics/2019/10/25/compute-so3-repns/&quot;&gt;post&lt;/a&gt; I implemented the &lt;a href=&quot;https://gist.github.com/arvsrao/637a6b6c8553d0f6ca7cc6a2884a56e2&quot;&gt;recursive algorithm&lt;/a&gt; in Python, but never visually demonstrated the rotation of harmonic homogeneous polynomials by representations on $\mathcal{P}_d$. Well, I finally got around to doing just that.&lt;/p&gt;

</description>
        
        <pubDate>Fri, 18 Apr 2025 00:00:00 +0200</pubDate>
        <link>https://rao.im/mathematics/2025/04/18/rotate-homogenous-polynomials/</link>
        <guid isPermaLink="true">https://rao.im/mathematics/2025/04/18/rotate-homogenous-polynomials/</guid>
      </item>
    
      <item>
        <title>Solving Overdetermined Linear Systems</title>
        
        
          <description>&lt;p&gt;An overdetermined linear system is a linear system of $n$ equations in $m$ unknowns, where $n &amp;gt; m$.&lt;/p&gt;

</description>
        
        <pubDate>Sat, 01 Mar 2025 00:00:00 +0100</pubDate>
        <link>https://rao.im/mathematics/2025/03/01/solving-linear-systems/</link>
        <guid isPermaLink="true">https://rao.im/mathematics/2025/03/01/solving-linear-systems/</guid>
      </item>
    
      <item>
        <title>Divisibility Rule of 9</title>
        
        
          <description>&lt;p&gt;While chatting with my son about how to determine all the factors of an integer he (or maybe my wife) said 9 must be a factor because the digits of the integer sum to 9. Which really surprised me. I don’t recall learning this fact in school. Which I can only blame on my poor American education…&lt;/p&gt;

</description>
        
        <pubDate>Sat, 01 Feb 2025 00:00:00 +0100</pubDate>
        <link>https://rao.im/math/2025/02/01/divisibility-rule/</link>
        <guid isPermaLink="true">https://rao.im/math/2025/02/01/divisibility-rule/</guid>
      </item>
    
      <item>
        <title>Asteroids</title>
        
        
          <description>&lt;figure&gt;
&lt;div align=&quot;center&quot;&gt;
	&lt;img src=&quot;/assets/asteroids-spiel-demo.gif&quot; /&gt;
&lt;/div&gt;
  &lt;figcaption&gt; 
    Example game play was captured using a gif maker from 
    &lt;a href=&quot;https://giphy.com/create/gifmaker&quot;&gt;GIPHY&lt;/a&gt;.
  &lt;/figcaption&gt; 
&lt;/figure&gt;

</description>
        
        <pubDate>Sun, 24 Mar 2024 00:00:00 +0100</pubDate>
        <link>https://rao.im/c++/2024/03/24/asteroids/</link>
        <guid isPermaLink="true">https://rao.im/c++/2024/03/24/asteroids/</guid>
      </item>
    
      <item>
        <title>Perspective Projection</title>
        
        
          <description>&lt;p&gt;Derivations of the perspective projection matrix, whether in books or on the web, always feel either overly complicated or completely lacking in detail–sometimes the perspective projection matrix is just stated without much explaination. In surveys of image projection, that is projection of a 3D scene to 2D, orthographic projection is presented as a contrasting method without relation to perspective projection. &lt;!--more--&gt;
While the light model–how light travels to the image plane–underlying the different projection types differ, both can be formulated as projective transformations from their respective view volumes to the canonical view volume. Once in the canonical frame, $x$ and $y$ coordinates are already considered &lt;em&gt;projected&lt;/em&gt;, which is to say they are in image plane coordinates; so &lt;mark&gt;both perspective projection and orthographic projection are image projections on each depth slice of their respective view volumes&lt;/mark&gt;. When rendering to the screen, depth information is required to determine those objects and parts of objects not occluded by other objects.&lt;/p&gt;

</description>
        
        <pubDate>Thu, 03 Mar 2022 00:00:00 +0100</pubDate>
        <link>https://rao.im/computer%20graphics/2022/03/03/prospective-projection/</link>
        <guid isPermaLink="true">https://rao.im/computer%20graphics/2022/03/03/prospective-projection/</guid>
      </item>
    
      <item>
        <title>Projecting a 3D Scene to the Image Plane</title>
        
        
          <description>&lt;p&gt;&lt;strong&gt;Given a 3D scene in world coordinates, how does an image of the scene form in the camera, and how do 3D scene points project to the image plane?&lt;/strong&gt; The short answer to the later question is the &lt;a href=&quot;#the-camera-matrix&quot;&gt;camera matrix&lt;/a&gt;. And this short note is devoted to deriving the &lt;a href=&quot;#the-camera-matrix&quot;&gt;camera matrix&lt;/a&gt;. First some mathematical preliminaries.
&lt;!--more--&gt;&lt;/p&gt;
&lt;h2 id=&quot;from-pencils-to-points&quot;&gt;From Pencils to Points&lt;/h2&gt;

</description>
        
        <pubDate>Sat, 26 Feb 2022 00:00:00 +0100</pubDate>
        <link>https://rao.im/computer%20graphics/2022/02/26/camera-matrix/</link>
        <guid isPermaLink="true">https://rao.im/computer%20graphics/2022/02/26/camera-matrix/</guid>
      </item>
    
      <item>
        <title>Rotating Homogeneous Polynomials &amp; Representations of $SO(3)$</title>
        
        
          <description>&lt;p&gt;Under the guise of rotating solid spherical harmonic functions, I want to investigate the computational aspects of representing rotations of homogeneous polynomials. The connection being that harmonic homogeneous polynomials are solid spherical harmonics. My goal in this note is to rotate solid homogeneous polynomials ( in variables $x$, $y$, and $z$ ) by computing representations of $SO(3)$ on \(\mathcal{P}_d\), homogeneous polynomials of degree $d$. One nice aspect of computing representations of $SO(3)$ is that only algebra is required. Differential equations typically used to describe/derive spherical harmonics make no appearance in what follows.
&lt;!--more--&gt;&lt;/p&gt;

</description>
        
        <pubDate>Fri, 25 Oct 2019 00:00:00 +0200</pubDate>
        <link>https://rao.im/mathematics/2019/10/25/compute-so3-repns/</link>
        <guid isPermaLink="true">https://rao.im/mathematics/2019/10/25/compute-so3-repns/</guid>
      </item>
    
      <item>
        <title>Area Forms &amp; Normals</title>
        
        
          <description>&lt;p&gt;To compute the area form of $S^3$, I used a general &lt;em&gt;formula&lt;/em&gt; for $S^n \subset \mathbb{R}^{n+1}$ that I found in Lee’s &lt;em&gt;Introduction to Smooth Manifolds&lt;/em&gt;.&lt;/p&gt;

</description>
        
        <pubDate>Tue, 10 Apr 2018 00:00:00 +0200</pubDate>
        <link>https://rao.im/mathematics/2018/04/10/computing-normals/</link>
        <guid isPermaLink="true">https://rao.im/mathematics/2018/04/10/computing-normals/</guid>
      </item>
    
      <item>
        <title>Parameterizing the Space of 3D Rotations</title>
        
        
          <description>&lt;p&gt;3D medical images in the NifTI format store data from MRI acquisitions of some anatomy, like a human brain or heart. When I was a postdoc @Penn &lt;a href=&quot;https://www.cbica.upenn.edu&quot;&gt;my lab&lt;/a&gt; was primarily interested in studying brains. Each image associates grayscale values ( in the simplest case ) to discrete coordinates $(i,j,k)$, which describe voxel locations. And for reasons best explained by &lt;a href=&quot;https://nifti.nimh.nih.gov/nifti-1/documentation/faq#Q17&quot;&gt;NifTI FAQ&lt;/a&gt; it’s useful/important to align the acquired image to some other coordinate system. This alignment is stored in the image header, as a rigid motion plus an offset. Here’s a bit of &lt;a href=&quot;https://nifti.nimh.nih.gov/pub/dist/src/niftilib/nifti1.h&quot;&gt;NifTI documentation&lt;/a&gt; motivating the need to keep the alignment.&lt;/p&gt;

</description>
        
        <pubDate>Sat, 30 Dec 2017 00:00:00 +0100</pubDate>
        <link>https://rao.im/mathematics/2017/12/30/parametrizing-the-space-of-3d-rotations/</link>
        <guid isPermaLink="true">https://rao.im/mathematics/2017/12/30/parametrizing-the-space-of-3d-rotations/</guid>
      </item>
    
      <item>
        <title>3 Points Make a Circle</title>
        
        
          <description>&lt;p&gt;While learning about Voronoi diagrams from &lt;a href=&quot;https://www.amazon.de/Computational-Geometry-Applications-Mark-Berg/dp/3540779736&quot;&gt;Computational Geometry&lt;/a&gt;, I had trouble justifying a single statement from a proof regarding the complexity ( as a function of $n$ sites ) of Voronoi diagrams. For completeness I’ll restate the theorem here.&lt;/p&gt;

</description>
        
        <pubDate>Fri, 30 Jun 2017 00:00:00 +0200</pubDate>
        <link>https://rao.im/mathematics/2017/06/30/three-points-make-a-circle/</link>
        <guid isPermaLink="true">https://rao.im/mathematics/2017/06/30/three-points-make-a-circle/</guid>
      </item>
    
  </channel>
</rss>