<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Madhav Tankha on Medium]]></title>
        <description><![CDATA[Stories by Madhav Tankha on Medium]]></description>
        <link>https://medium.com/@mtankha?source=rss-805445b40bbb------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/0*vohUi_TepEQuEfEY</url>
            <title>Stories by Madhav Tankha on Medium</title>
            <link>https://medium.com/@mtankha?source=rss-805445b40bbb------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sat, 14 Nov 2026 22:11:08 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@mtankha/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[One Museum Browser Tab Extension to Rule Them All]]></title>
            <link>https://medium.com/@mtankha/one-museum-browser-tab-extension-to-rule-them-all-6387f75f32f3?source=rss-805445b40bbb------2</link>
            <guid isPermaLink="false">https://medium.com/p/6387f75f32f3</guid>
            <category><![CDATA[museums]]></category>
            <category><![CDATA[culture]]></category>
            <category><![CDATA[art]]></category>
            <category><![CDATA[chrome-extension]]></category>
            <dc:creator><![CDATA[Madhav Tankha]]></dc:creator>
            <pubDate>Sun, 31 Aug 2025 19:56:40 GMT</pubDate>
            <atom:updated>2025-09-29T18:29:46.319Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*KOncpomew1VpxIcSPrzXoQ.png" /></figure><p>Years ago, I made an unofficial <a href="https://medium.com/@mtankha/bringing-the-mets-collection-to-your-browser-39945da7dda2">browser extension for the Metropolitan Museum of Art</a> that displayed a random object from the museum’s collection every time you opened a new tab. This was made possible by the <a href="https://metmuseum.github.io/">Met’s Open Access API</a>, which allows developers to access artwork data for the several hundred thousand objects in its collection. Over the years, as I encountered ever more museum APIs, a thought would occasionally flicker through my mind: what if there was a browser extension that let you access artwork from every museum API out there? This thought would be borne down by two others rearing up in response: one, that the Google Arts and Culture browser tab already did something similar. Two, that reconciling the idiosyncrasies of several different museum APIs would be too much annoying work.</p><p>A few weeks ago, just as I was starting on a vacation and settling down to a strict routine of hard chilling, the thought intruded again, refusing this time to leave. Abandoning my previous plans, I submitted. I did a quick search for museum APIs and picked some initial candidates: <a href="https://metmuseum.github.io/">The Met</a>, the <a href="https://whitney.org/about/website/api">Whitney Museum of American Art</a>, the <a href="https://api.artic.edu/docs/">Art Institute of Chicago</a>, <a href="https://harvardartmuseums.org/collections/api">Harvard Art Museums</a>, the <a href="https://www.clevelandart.org/open-access-api">Cleveland Museum of Art</a>, and the <a href="https://developers.vam.ac.uk/guide/v2/">Victoria and Albert Museum</a>.</p><p>I resolved that similar to my previous extension, a defining feature of this one would be that the extension wouldn’t just be limited to a few flashy highlights, but bravely trawl the murky depths of each of these collections, returning occasionally with jewels, occasionally with kitschy objects like <a href="https://collections.vam.ac.uk/item/O259973/dress-fabric-unknown/">bits of cloth</a>, <a href="https://harvardartmuseums.org/collections/object/229483">cutlery</a>, <a href="https://www.artic.edu/artworks/154917/two-borders-on-parchment-incomplete">pieces of parchment</a>, or <a href="https://www.metmuseum.org/art/collection/search/740949">wall fragments</a>. As I knew from past experience though, this sort of serious trawling was no straightforward task…</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*yVqKucXbpacT5fqPi9jzBg.png" /><figcaption><a href="https://www.artic.edu/artworks/7957/diana-and-her-nymphs-with-the-ox-hunt">Diana and Her Nymphs with the Ox Hunt</a>. Hans Bol and Adriaen Collaert. 1590–1610. Brussels. Wool and silk, slit and double interlocking tapestry weave. Art Institute of Chicago.</figcaption></figure><h3><strong>The Hunt for True Random</strong></h3><p>Each museum had a different path to retrieving a random artwork from its systems, sometimes beautifully paved, sometimes overgrown with thorns that hid roving serpents. In my journey I encountered three types of museums:</p><p>The Met, unsurprisingly, insisted on being a category unto its own, priding itself on being esoteric and high-maintenance, like an F. Scott Fitzgerald character. It had a system where I had to first request a list of object IDs and then make another request to retrieve data about a single object. To keep things fast and light, I would need to cache the list of object IDs the first time the extension ran, and then query a random ID from that list every time I needed a new artwork.</p><p>In the second category were sensible, agreeable, Jane-Austeneque museums like the Whitney, Cleveland Museum of Art, and the Art Institute of Chicago, that returned a full set of collection object data when you queried their systems. Since these results were paginated, to get a random work you first needed to hit a random page, and to hit a random page you needed to know how many pages there were in total (in order to calculate a random number between 1 and the total number of pages). For these museums, the extension would first make a simple API call that returned the total number of objects in the collection (and cache this number), and then would calculate the number of pages by dividing the total number of objects by the number of responses per page returned by the API (30 in the case of The Whitney, 100 in the case of AIC). Each time a new object was needed, the extension would choose a random number between 1 and the total number of pages, request a random page from the API, and then select a random object from the random page returned. After coming up with this system to handle the Whitney’s API, I used Gemini to suggest a version of the code that could be abstracted for multiple museums, and was pleasantly surprised at the result. The code worked off the bat for a number of museums: AIC, Harvard Art Museums, the Cleveland Museum of Art, and the V&amp;A, which probably speaks to the quality of their documentation.</p><p>In the third category were paragons of museum APIs, like Dante’s Beatrice — Harvard art Museums and V&amp;A, which allowed for the retrieval of a random object or the random sorting of objects as an API parameter itself. This meant that I didn’t have to generate a random page/object number on my end.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*fMNLX6rolUehR-xu0U-XQg.png" /><figcaption><a href="https://www.clevelandart.org/art/2018.141">Krishna Quells the Serpent Kaliya, from a Bhagavata Purana</a>. c. 1710. Northwestern India, Rajasthan, Rajput Kingdom of Mewar. Gum tempera and gold on paper. Cleveland Museum of Art.</figcaption></figure><h3><strong>Taming the Data</strong></h3><p>The second task was to figure out the different formats these APIs returned their data in and massage these differences into a common format that the extension could use to display artwork. This was fairly straightforward, except for a few small issues with artist names — The Whitney didn’t return artist names, only IDs, which would have needed a second API call to retrieve. Images also needed a bit of thought. Some APIs returned a single image URL (The Whitney, HAM), others multiple image urls representing various dimensions (The Met, CMA), others didn’t return the exact URL but elements of it that had to be combined to construct the actual URL (AIC, V&amp;A). V&amp;A would occasionally return empty titles for generic objects like prints, which would need to be manually substituted by the object’s medium/classification in order to match its naming on the V&amp;A website.</p><p>As in my previous extension, I followed the logic of displaying a small image as quickly as possible, and then replacing it with a high-res image, if one existed, once the smaller one had loaded.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*-v63u3AMpMazC94ZI_z9Ig.png" /><figcaption><a href="https://hvrd.art/o/251640"><em>Playing Card: Pope Four (Trump IIII)</em> (Unidentified Artist)</a>. 19th century. Florence. Engraving with stenciled opaque watercolor on card. Harvard Art Museums.</figcaption></figure><h3><strong>Repeating Past Follies</strong></h3><p>My previous extension had features like deep zooming (using OpenSeaDragon) and a history feature that records the last 10 objects you’ve seen (because my mother said she’d often open her browser to go to a website and see an interesting object flash on her screen for a second that she could never get back to). It was easy to hook up the new data to these features. I’d also put an ambitious quiz feature into The Met plugin that invited people to guess which culture/geography an artwork belonged to. This I repurposed into a quiz that challenges people to guess which collection an artwork belongs to. Owing to the encyclopedic nature of many of the included collections, this quiz is impossibly hard, but museum nerds and/or masochists should give it a go.</p><p>One feature I had to jettison was the ability to limit results to a particular theme, since only a couple of museums supported this. Goodbye, cats! :(</p><p>Once things were set up, I did a quick user test. The last time I tested my plugin with someone, I got the amazing suggestion for the quiz feature (Thanks, Evander!) What wonders would emerge this time?</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*xpb-xtq7gdH-Pjjm4Rc8qw.png" /><figcaption><a href="https://collections.vam.ac.uk/item/O1140083/the-tour-of-dr-syntax-watercolour-rowlandson-thomas/">The Tour of Dr. Syntax in Search of the Picturesque</a>. Thomas Rowlandson. early 19th century. England. Watercolour. Victoria and Albert Museum.</figcaption></figure><h3><strong>“This is great, but I wish I could search for a specific medium, like paintings, or a subject”</strong></h3><p>As soon as Steph spoke these words, a pall fell over me. It certainly was possible to allow users to choose a preferred search term or a preferred medium. However, once again, different museums had different capabilities.</p><ul><li>The Met allowed for search terms as well as a medium</li><li>The Whitney allowed for neither of these these things</li><li>Art Institute of Chicago allowed for search terms, and for mediums/classifications represented by IDs.</li><li>Harvard Art Museums allowed for search terms, classification (a more restricted, and therefore useful variant of medium), as well as medium.</li><li>Cleveland Museum of Art allowed for search terms and ‘type’.</li><li>V&amp;A allowed for search terms as well as an ‘object type’.</li></ul><p>The sirens and Beatrices of yesterday whirled, separating and merging, until I could no longer reconcile the heroes and villains of the past with those of the task that lay before me now.</p><p>Diving deeper, the list of available mediums, classifications, and types differed from museum to museum, and there were smaller discrepancies like whether a medium was “painting” (singular) or “paintings” (plural). My two options were: a global system for a limited number of mediums (fewer options, but easier to view objects across collections of a particular type), or a bespoke medium filter for each museum (more options, but users would need to set each museum’s preferences manually).</p><p>Surely it would be easier to just buy my friend some chocolate to ensure their silence and conviviality. But there was no turning back. After deep reflection, I opted for a simpler, global filter for mediums, because I liked the feeling of being able to view collections comparatively. The result was often unsatisfactory, either when a museum didn’t honor the filters, or when an api returned weird, apparently unrelated results for a particular search query (this was likely due to the search term appearing somewhere in an associated text or field for the work). But the effect that resulted when the feature did work well was impressive enough that I decided to keep it, after including a disclaimer to hopefully placate occasional disappointment. Hello, cats! (sort of). Once certain museums get their affairs in order, I plan to button up this feature further.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*NMyimbNnbwobCDIvOQrcZQ.png" /><figcaption><a href="https://www.metmuseum.org/art/collection/search/1066">Button</a>. Waterbury Button Company. 1830–70. Waterbury, Connecticut. Silver plate. The Metropolitan Museum of Art.</figcaption></figure><p>And that’s that. If you’re reading this, I hope you enjoy the plugin. If you have suggestions or bugs, get in touch!</p><p><a href="https://chromewebstore.google.com/detail/museum-mile/pnfpnlfmofmpnmpkkohabaegcippkoib"><strong>Get the plugin [Chrome</strong></a>]<strong><br></strong><a href="https://microsoftedge.microsoft.com/addons/detail/museum-mile/pdlgnahjenfhpedamdllgnikjookkfdj"><strong>Get the plugin [Edge]</strong></a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=6387f75f32f3" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Bringing The Met’s Collection to Your Browser]]></title>
            <link>https://medium.com/@mtankha/bringing-the-mets-collection-to-your-browser-39945da7dda2?source=rss-805445b40bbb------2</link>
            <guid isPermaLink="false">https://medium.com/p/39945da7dda2</guid>
            <category><![CDATA[art]]></category>
            <category><![CDATA[technology]]></category>
            <category><![CDATA[browser-extension]]></category>
            <category><![CDATA[culture]]></category>
            <category><![CDATA[museums]]></category>
            <dc:creator><![CDATA[Madhav Tankha]]></dc:creator>
            <pubDate>Fri, 26 Jun 2020 23:34:02 GMT</pubDate>
            <atom:updated>2020-06-27T01:58:44.038Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="A selection of artworks from the museum collection" src="https://cdn-images-1.medium.com/max/1024/1*kENBlICTKgNDkz-h33g0sw.jpeg" /></figure><p>There are two ways that I experience The Metropolitan Museum of Art in New York City: The first, a focused visit to an exhibition of interest; The second, an aimless wandering, where I let myself be drawn into rooms on a whim, or be arrested by an object that catches my eye — often something I may have walked by dozens of time without noticing.</p><p>It is the magic of the latter that I try and capture in a small (unofficial) browser plugin available on Chrome, Firefox, and Edge, which brings up a random artwork from The Met’s collection every time a new browser tab is opened.</p><p>The extension uses The Met’s recently-released public API, which allows anybody in the world to programmatically access images and artwork details from The Met’s Collection in the public domain.</p><figure><img alt="A silvered copper, shell, and stone, face from Peru, along with a carpet from India showing scenes of courtly life." src="https://cdn-images-1.medium.com/max/1024/1*bb7lcrmMO1RilmWogY1w1w.jpeg" /><figcaption><strong>Some discoveries unearthed by the extension | Left:</strong> <a href="https://www.metmuseum.org/art/collection/search/313429">Profile Face</a>, 6th–7th century. Moche (Loma Negra). Silvered copper, shell, stone, 7 1/4 x 7 1/16 x 1 1/4 in. (18.5 x 17.9 x 3.2 cm), The Michael C. Rockefeller Memorial Collection, Bequest of Nelson A. Rockefeller, 1979, <strong>Right:</strong> <a href="https://www.metmuseum.org/art/collection/search/448212"><em>Kalamkari Rumal</em></a>, ca. 1640–50. Attributed to India, Deccan, Golconda. Cotton; plain weave, mordant painted and dyed, resist dyed, Textile: H. 24 in x 36 in. (61 x 91.4 cm), Rogers Fund, 1928</figcaption></figure><p>Certainly, similar extensions already exist. Google Arts and Culture has an extension that brings up beautiful, curated artwork from museums across the world. A number of extensions were created under the banner of the erstwhile Met Media Lab, focusing on small selections of objects containing cats, geometric patterns, and depictions of the weather, among other things. In contrast, this new chrome extension is completely randomized, picking images from the entire collection of 450,000+ objects viewable online, rather than a curated subset of images.</p><p>An un-curated approach does have its drawbacks — not all the images that pop up are breathtaking. Sometimes you’ll get a fragment of cloth, or a spoon. But what more than makes up for this, in my opinion, is the feeling one has upon discovering some small, obscure piece of history from the vast, churning depths of the collection, something that one may never be able to see on display, something that may not have even made the cut if there was a level of human mediation involved.</p><figure><img alt="An Egyptian model of a granary with scribe and overseer, and a gold and enamel pendant from France depicting Prudence." src="https://cdn-images-1.medium.com/max/1024/1*QaXr1CiSjcFSEBoZJnsNbA.jpeg" /><figcaption><strong>More Discoveries | Left:</strong> <a href="https://www.metmuseum.org/art/collection/search/555954">Model of a granary with scribe and overseer</a>, ca. 2030–1850 B.C. From Egypt, Middle Egypt, Asyut (Lykopolis), Khashaba/Kamal excavations, 1910. Wood, 14 15/16 x 12 3/16 x 7 1/16 in (38 x 31 cm x 18 cm), Rogers Fund, 1911, <strong>Right</strong>: <a href="https://www.metmuseum.org/art/collection/search/193692"><em>Prudence</em></a>, ca. 1550–60, back: 19th century. Enamel on reverse after a design by Étienne Delaune (French, Orléans 1518/19–1583 Strasbourg). Chalcedony, mounted in gold with enamel, rubies, emeralds, diamond, and pearl, Overall, with pendant pearl, without bail: 3 3/16 x 1 7/8 in. (8.2 x 4.8 cm), Gift of J. Pierpont Morgan, 1917</figcaption></figure><p>(As good as it felt ideologically to follow a philosophy of ‘zero mediation’, I did end up excluding, fairly quickly, anything that had the words ‘terracotta fragment’ in the title.)</p><h3><strong>Sure, but does it have cats?</strong></h3><p>It is a grim fact that anything that presently exists in the digital realm is in competition — explicitly or implicitly — with cats. Lifelong friends told me, point blank, that they would refuse to consider installing the extension until it was possible to filter results to show only cats. It therefore felt prudent to try an co-opt them into the project as early as possible.</p><p>The second stage of the project involved allowing users to tailor the objects they saw according to a number of themes — not only cats, but also, for example, nature, mythical creatures, architecture, calligraphy, and even some more diffuse ones such as love, contemplation, and death.</p><figure><img alt="An Iranian bowl with mythical creatures, and an Etruscan stone sculpture of a winged lion." src="https://cdn-images-1.medium.com/max/1024/1*rK5FlU0KX7sn2xxWMhiTlg.jpeg" /><figcaption><strong>Mythical Creatures from The Met’s Collection | Left</strong>: <a href="https://www.metmuseum.org/art/collection/search/447183">Bowl</a>, 12th–13th century. Attributed to Iran. Stonepaste; overglaze painted (mina’i), Diam. 8 in. (20.3 cm), The Grinnell Collection, Bequest of William Milne Grinnell, 1920, <strong>Right</strong>: <a href="https://www.metmuseum.org/art/collection/search/255059"><em>Nenfro statue of a winged lion</em></a>, ca. 550 B.C. Etruscan. Nenfro, 37 ½ x 28 ¾ in ( 95.3 x 73 cm), Rogers Fund, 1960</figcaption></figure><figure><img alt="British porcelain coffee cups with gilded birds, an Italian silk fragment depicting a forest scene." src="https://cdn-images-1.medium.com/max/1024/1*GW_GEAYM-HRfikTLGBEyxQ.jpeg" /><figcaption><strong>Peacocks from The Met’s Collection | Top:</strong> <a href="https://www.metmuseum.org/art/collection/search/201813">Coffee cups (4) (part of a service)</a>, ca. 1758–69. Chelsea Porcelain Manufactory. Soft-paste porcelain, Gift of Mrs. Francis P. Garvan, in memory of Francis P. Garvan, 1954, <strong>Bottom:</strong> <a href="https://www.metmuseum.org/art/collection/search/230633"><em>Fragment</em></a>, 18th century. Italian, possibly Venice. Silk, Overall: 15 x 21 3/4 in. (38.1 x 55.2 cm), Gift of Nanette B. Kelekian, in honor of Olga Raggio, 2002</figcaption></figure><p>This was made possible by the recent addition of keywords into the API, which contain information about what several thousands of artworks in the collection depict, allowing for the sorting and association of artwork in ways that was not previously possible.</p><h3><strong>Ancient Egypt or Medieval Europe?</strong></h3><p>Sometimes a colleague and I would pull up an object and try to guess where in the world it might have originated from, or what time period it was created in, or what material it is, before clicking ‘learn more’ to see if we were correct, with sometimes amusing — but always educational — results.</p><p>These moments lead to the inclusion of a fun “play” feature which lets a person try and guess an artwork’s origin, putting to test their knowledge of art history as well as their close-looking skills. Try and see how many you can get right in a row!</p><p>If all goes as planned, eventually no user of this extension will ever be able to get to the website they originally intended to visit when they open a new tab, being engulfed, instead, by the vast diversity and striking beauty of the Met’s collection. Get it from one of the links below:</p><h4><a href="https://chrome.google.com/webstore/detail/art-from-the-metropolitan/jmknffcpbebofpmddnpmjnoceaiofpok">Chrome</a> <strong>|</strong> <a href="https://addons.mozilla.org/en-US/firefox/addon/met-art/">Firefox </a>| <a href="https://microsoftedge.microsoft.com/addons/detail/art-from-the-metropolitan/fenldagdmhjfghkobllgoelgaoaalbgo">Edge</a></h4><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=39945da7dda2" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>