<div dir="ltr">Inspired by Javier's work on all this grid fetching, I finally got grid working on proj-wasm too and (shamelessly!) tried to fill out the demo page to include some of his lovely transformation web page interface as well. Instead of doing the grid fetches through emscripten, though, it takes a slightly different approach (<a href="https://github.com/willcohen/clj-proj?tab=readme-ov-file#grid-fetching">https://github.com/willcohen/clj-proj?tab=readme-ov-file#grid-fetching</a>). In an effort to maintain parity with the JVM FFI side of the library, I'm still only trying to stick to the pure C api, so I can't quite get all of the projinfo functions as cleanly, though the C API seems to provide a lot of that info.<div><br></div><div>Parallelism and grid fetching now work on both node and browser, with paths resolving correctly on mac/win/linux.<br><div><br></div><div>There's also a small console at the bottom of the demo page (still working on the autocomplete -- it's missing some of the functions) that allows trying to run custom PROJ functions in-browser. There's a dropdown with examples to get started.</div></div></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Mon, Feb 23, 2026 at 3:27 PM Thomas Knudsen via PROJ <<a href="mailto:proj@lists.osgeo.org">proj@lists.osgeo.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr">Whoa, Javier! That is utterly awesome!<div><br></div><div>I needed this badly a few months back, when teaching a geodesy course for people who would never consider installing PROJ on their PC. Next time around, I will just point them to your work.</div><div><br></div><div>Thanks for this huge effort!</div><div><br></div><div>/Thomas Knudsen</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Den man. 23. feb. 2026 kl. 11.25 skrev Javier Jimenez Shaw via PROJ <<a href="mailto:proj@lists.osgeo.org" target="_blank">proj@lists.osgeo.org</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Hi</div><div><br></div><div>TL;DR: go to the links below and play :)</div><div><br></div><div>Finally, after a long time and learning a lot during the process, I am getting a webpage that uses PROJ to perform coordinate transformations (similar to cs2cs), and another that replicates projinfo:</div><div><br></div><div>tranform: <a href="https://jjimenezshaw.github.io/wasm-proj/transform.html" target="_blank">https://jjimenezshaw.github.io/wasm-proj/transform.html</a></div><div><br></div><div>projinfo: <a href="https://jjimenezshaw.github.io/wasm-proj/projinfo.html" target="_blank">https://jjimenezshaw.github.io/wasm-proj/projinfo.html</a></div><div><br></div><div>All runs in the browser with PROJ (current master as of yesterday), no server needed. It uses the wasm compilation with emscripten that is run in CI (I copied the two needed files into the project).</div><div>It uses a very simple library to manage the memory allocation, trying to make it simple for the javascript developer. The library is still in development, but functional as you can see.</div><div><br></div><div>The transformer is able to use grids: it downloads at execution time the part of grid needed (a feature PROJ already has). For that it needs some code to run in a web worker, but the library is doing that as well.</div><div><br></div><div>For instance, this link <a href="https://jjimenezshaw.github.io/wasm-proj/transform.html?st=combo&tt=combo&sh=EPSG%3A6318&th=EPSG%3A6539&tv=EPSG%3A6360&p3d=1&net=1&coords=40.7789978+-73.9632654+-20.5" target="_blank">https://jjimenezshaw.github.io/wasm-proj/transform.html?st=combo&tt=combo&sh=EPSG%3A6318&th=EPSG%3A6539&tv=EPSG%3A6360&p3d=1&net=1&coords=40.7789978+-73.9632654+-20.5</a></div><div>uses the geoid model for NAVD88 (in this case, GEOID18)</div><div><br></div><div>Tip for projinfo: add "&run=1" when you share the URL, and it will run directly the query. Both pages update the URL with the data to make it easy to share.</div><div><br></div><div>Have fun!</div><div><br></div><div>Cheers,</div><div>Javier.</div><div><br></div><div>PS. Yes, another one. There are at least two other. This was a personal challenge to efficiently use the grid files in the browser.</div><div>PPS. Why these two, and not other things from PROJ? well, these are the two apps I use in a daily basis in the console. Now I can send a link to my colleagues that do not know how to use the command line. But more things can be done.</div></div>
_______________________________________________<br>
PROJ mailing list<br>
<a href="mailto:PROJ@lists.osgeo.org" target="_blank">PROJ@lists.osgeo.org</a><br>
<a href="https://lists.osgeo.org/mailman/listinfo/proj" rel="noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/proj</a><br>
</blockquote></div>
_______________________________________________<br>
PROJ mailing list<br>
<a href="mailto:PROJ@lists.osgeo.org" target="_blank">PROJ@lists.osgeo.org</a><br>
<a href="https://lists.osgeo.org/mailman/listinfo/proj" rel="noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/proj</a><br>
</blockquote></div>