<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="/assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Gustaf Waldemarson</title><link>https://gustafwaldemarson.com/</link><description>Programming, design, and everything inbetween.</description><atom:link href="https://gustafwaldemarson.com/rss.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2025 &lt;a href="mailto:gustaf.waldemarson@gmail.com"&gt;Gustaf Waldemarson&lt;/a&gt; </copyright><lastBuildDate>Sun, 11 May 2025 14:49:25 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>BCON24: Create your own Importers and Exporters</title><link>https://gustafwaldemarson.com/posts/bcon24-blender-pbrt-io/</link><dc:creator>Gustaf Waldemarson</dc:creator><description>&lt;p&gt;&lt;img alt="BCON24" src="https://gustafwaldemarson.com/images/publications/blender-pbrt-io/blendercon_intro.opt.png" title="BCON24"&gt;&lt;/p&gt;
&lt;p&gt;It's time for another &lt;a href="https://conference.blender.org/2024/"&gt;Blender Conference&lt;/a&gt;
in Amsterdam! This year, I am holding a talk about how to create custom importer
and exporter extensions for Blender. Feel free to tune in after Wednesday the 23rd
October at 16:00 on &lt;a href="https://youtu.be/BEbscsBRIx0"&gt;YouTube&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Additionally, you can find the slides, with notes, down below, or on my
&lt;a href="https://gustafwaldemarson.com/pages/publications/#talk1"&gt;publications page&lt;/a&gt;:&lt;/p&gt;
&lt;ul class="nobullets simple"&gt;
 &lt;li&gt;&lt;img alt="pdf" src="https://gustafwaldemarson.com/assets/images/mark-pdf.svg"&gt; - &lt;a class="reference external" href="https://gustafwaldemarson.com/publications/blender-pbrt-io/slides.pdf"&gt;BCON24 presentation slides&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;img alt="pdf" src="https://gustafwaldemarson.com/assets/images/mark-pdf.svg"&gt; - &lt;a class="reference external" href="https://gustafwaldemarson.com/publications/blender-pbrt-io/slides_w_notes.pdf"&gt;BCON24 presentation slides with notes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><category>Blender</category><category>PBRT</category><category>ray tracing</category><guid>https://gustafwaldemarson.com/posts/bcon24-blender-pbrt-io/</guid><pubDate>Tue, 22 Oct 2024 17:55:24 GMT</pubDate></item><item><title>Succinct Opacity Micromaps</title><link>https://gustafwaldemarson.com/posts/succinct-opacity-micromaps/</link><dc:creator>Gustaf Waldemarson</dc:creator><description>&lt;div class="post-images"&gt;
&lt;p&gt;
&lt;img src="https://gustafwaldemarson.com/images/publications/succinct-opacity-micromaps/compression-teaser.opt.png" alt="Teaser"&gt;
&lt;/p&gt;
&lt;/div&gt;

&lt;div class="post-images"&gt;
&lt;p&gt;
&lt;img src="https://gustafwaldemarson.com/images/publications/succinct-opacity-micromaps/landscape-4state-6level-texture_04.png" alt="Landscape"&gt;
&lt;img src="https://gustafwaldemarson.com/images/publications/succinct-opacity-micromaps/san-miguel-pbrt-4state-6level-texture_04.png" alt="San Miguel"&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;p&gt;
Recently, I presented a bit of my work at the High-Performance graphics
conference on compressing a relatively new kind of Vulkan® and DirectX® graphics
object: the Opacity Micromap. This object is intended to be used as a relatively
cheap memory hint to the hardware ray-tracing pipeline to attempt to cut down on
the number of times the expensive &lt;code&gt;AnyHit&lt;/code&gt; shader has to be called.
&lt;/p&gt;

&lt;p&gt;
It may still be relatively big however; so in this work we introduce a way to
interpret the micromap as a tree structure that in turn can be compressed in a
very efficient way: Up to 110 times in some actual content.
&lt;/p&gt;

&lt;p&gt;
You can find the presentation, the slides, and the paper itself among my
&lt;a href="/pages/publications/"&gt;publications&lt;/a&gt;.
&lt;/p&gt;</description><category>micromaps</category><category>ray tracing</category><category>textures</category><category>Vulkan</category><guid>https://gustafwaldemarson.com/posts/succinct-opacity-micromaps/</guid><pubDate>Sun, 18 Aug 2024 10:58:18 GMT</pubDate></item><item><title>Updated Format Specifier Highlighting in Emacs</title><link>https://gustafwaldemarson.com/posts/updated-format-specifier-highlighting-in-emacs/</link><dc:creator>Gustaf Waldemarson</dc:creator><description>&lt;div&gt;&lt;p&gt;
What feels like ages ago now, I wrote a short &lt;a href="/posts/printf-format-highlighting-in-emacs"&gt;post&lt;/a&gt; about improving the syntax
highlighting of format specifiers for &lt;code&gt;printf&lt;/code&gt; style functions (actually, all
strings). While it has worked great for a long time, it is about time to give it
a bit of a face-lift and at the same time make it even more general.
&lt;/p&gt;

&lt;p&gt;
The first item on the agenda however, is to make the original regexp,
&lt;i&gt;manageable&lt;/i&gt;. When we finished things up, we were left with the following:
&lt;/p&gt;

&lt;p&gt;&lt;a href="https://gustafwaldemarson.com/posts/updated-format-specifier-highlighting-in-emacs/"&gt;Read more…&lt;/a&gt; (3 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>elisp</category><category>emacs</category><category>printf</category><category>regexp</category><category>rx</category><guid>https://gustafwaldemarson.com/posts/updated-format-specifier-highlighting-in-emacs/</guid><pubDate>Sun, 18 Aug 2024 10:09:42 GMT</pubDate></item><item><title>BCON23: Custom Data in glTF Files</title><link>https://gustafwaldemarson.com/posts/bcon23-custom-gltf-data/</link><dc:creator>Gustaf Waldemarson</dc:creator><description>&lt;p&gt;&lt;img alt="BCON23" src="https://gustafwaldemarson.com/images/publications/custom-gltf-data/blendercon_intro.opt.svg" title="BCON23"&gt;&lt;/p&gt;
&lt;p&gt;A while back now, I attended the &lt;a href="https://conference.blender.org/2023/"&gt;Blender
Conference&lt;/a&gt; in Amsterdam where I presented
a bit of the work I had done related to Blender, glTF and Opacity
Micromaps. Despite the 50-min presentation though, I still had a lot of content
over that I had to cut out in the interest of time (and presentation
coherency). I had hoped to include much of that in this write-up shortly after
the conference, but I ended up swamped with work from both Arm and several
looming paper deadlines, so I had to postpone it. &lt;a href="https://gustafwaldemarson.com/pages/publications/custom-gltf-data/" title="Handling Custom Data in glTF files with Exporter/Importer Plugins"&gt;But here it is
now&lt;/a&gt;, so better late than never I guess!&lt;/p&gt;
&lt;p&gt;Links to the presentation, as well as the slides I used can be found on my
publications and presentations &lt;a href="https://gustafwaldemarson.com/pages/publications/#talk0" title="Handling Custom Data in glTF files with Exporter/Importer Plugins"&gt;page&lt;/a&gt;.&lt;/p&gt;</description><category>glTF</category><category>micromaps</category><category>ray tracing</category><guid>https://gustafwaldemarson.com/posts/bcon23-custom-gltf-data/</guid><pubDate>Sat, 20 Jan 2024 14:55:24 GMT</pubDate></item><item><title>Photon Mapping Superluminal Particles</title><link>https://gustafwaldemarson.com/posts/photon-mapping-superluminal-particles/</link><dc:creator>Gustaf Waldemarson</dc:creator><description>&lt;p&gt;After quite a bit of work, I'm happy to announce my first successfully accepted
academic paper: &lt;a class="reference external" href="https://gustafwaldemarson.com/posts/photon-mapping-superluminal-particles/"&gt;Photon Mapping Superluminal Particles&lt;/a&gt;. In this paper we
investigated how to render the light generated by particles travelling faster
than light relative to the surrounding media, yielding some visually pleasing
images.&lt;/p&gt;
&lt;p&gt;If you're interested in knowing more, the full paper as well as the presentation
at &lt;a class="reference external" href="https://conferences.eg.org/egev20/"&gt;Eurographics 2020&lt;/a&gt; are available via the link above.&lt;/p&gt;
&lt;div class="post-images docutils container"&gt;
&lt;a class="reference external image-reference" href="https://gustafwaldemarson.com/images/cornell-sppm-100000.png"&gt;
&lt;img alt="Single charged particle inside a Cornell box." src="https://gustafwaldemarson.com/images/cornell-sppm-100000.png"&gt;
&lt;/a&gt;
&lt;a class="reference external image-reference" href="https://gustafwaldemarson.com/images/cornell-ri.png"&gt;
&lt;img alt="Many charged particles with cylinders of varying refractive index." src="https://gustafwaldemarson.com/images/cornell-ri.png"&gt;
&lt;/a&gt;
&lt;a class="reference external image-reference" href="https://gustafwaldemarson.com/images/reed-render.png"&gt;
&lt;img alt="Rendering of our Reed reactor model." src="https://gustafwaldemarson.com/images/reed-render.png"&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;This is hopefully the first of several &lt;a class="reference external" href="https://gustafwaldemarson.com/pages/publications/"&gt;publications&lt;/a&gt; to come during my PhD
studies, but for now we'll just have to wait and see what the future holds.&lt;/p&gt;</description><category>photon mapping</category><category>publication</category><category>ray tracing</category><category>rendering</category><guid>https://gustafwaldemarson.com/posts/photon-mapping-superluminal-particles/</guid><pubDate>Mon, 08 Jun 2020 09:19:58 GMT</pubDate></item><item><title>Personal ELPA Archive</title><link>https://gustafwaldemarson.com/posts/personal-elpa/</link><dc:creator>Gustaf Waldemarson</dc:creator><description>&lt;div&gt;&lt;p&gt;
There's been a few times over the years when I wanted to install an &lt;code&gt;Emacs&lt;/code&gt;
package that was &lt;i&gt;not&lt;/i&gt; available on any of the common package distributers, such
as &lt;code&gt;GNU ELPA&lt;/code&gt; or &lt;code&gt;MELPA&lt;/code&gt;. Most recently I wanted to install &lt;code&gt;llvm-mode&lt;/code&gt;, but
that package have recently been removed due to the size of the &lt;code&gt;llvm&lt;/code&gt;
repository. Previously, I would have just ended up not using the package at all
or possibly adding the package to my own configuration repository if I really
wanted to use it. This time however, I decided to try to figure out what it
would take to setup your own Emacs package distribution server, and as it turns
out, with a pre-existing webserver, there's only a few file conventions that
need to be fulfilled on the host and client sides to do just that.
&lt;/p&gt;

&lt;p&gt;&lt;a href="https://gustafwaldemarson.com/posts/personal-elpa/"&gt;Read more…&lt;/a&gt; (3 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>elisp</category><category>ELPA</category><category>emacs</category><guid>https://gustafwaldemarson.com/posts/personal-elpa/</guid><pubDate>Sat, 23 Mar 2019 13:32:13 GMT</pubDate></item><item><title>Clang Format</title><link>https://gustafwaldemarson.com/posts/clang-format/</link><dc:creator>Gustaf Waldemarson</dc:creator><description>&lt;div&gt;&lt;p&gt;
I often write code in &lt;code&gt;C&lt;/code&gt; or &lt;code&gt;C++&lt;/code&gt; and frequently use &lt;code&gt;clang-format&lt;/code&gt; to
automatically format the code I'm writing. Although, occasionally I get into a
situation where I should use a different coding style while I'm in a particular
subdirectory.
&lt;/p&gt;

&lt;p&gt;&lt;a href="https://gustafwaldemarson.com/posts/clang-format/"&gt;Read more…&lt;/a&gt; (1 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>clang</category><category>elisp</category><category>emacs</category><guid>https://gustafwaldemarson.com/posts/clang-format/</guid><pubDate>Tue, 10 Apr 2018 13:32:13 GMT</pubDate></item><item><title>Set Variable in Hook</title><link>https://gustafwaldemarson.com/posts/set-variable-in-hook/</link><dc:creator>Gustaf Waldemarson</dc:creator><description>&lt;div&gt;&lt;p&gt;
I've just recently started to use &lt;a href="https://github.com/areina/helm-dash"&gt;helm-dash&lt;/a&gt; for most of my documentation
look-ups. I did however find it a bit awkward to configure. For it to work its
magic, each &lt;code&gt;major-mode&lt;/code&gt; should set &lt;code&gt;helm-dash-docsets&lt;/code&gt; to a list of strings
with the docsets it should activate. The most straightforward way that I found
to do this was this was with a small lambda in the major-mode hook.
&lt;/p&gt;

&lt;p&gt;&lt;a href="https://gustafwaldemarson.com/posts/set-variable-in-hook/"&gt;Read more…&lt;/a&gt; (1 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>elisp</category><category>emacs</category><guid>https://gustafwaldemarson.com/posts/set-variable-in-hook/</guid><pubDate>Wed, 27 Sep 2017 10:42:36 GMT</pubDate></item><item><title>Comments</title><link>https://gustafwaldemarson.com/posts/comments/</link><dc:creator>Gustaf Waldemarson</dc:creator><description>&lt;p&gt;
Commenting is really a cornerstone of the free and open web, so it's really
about time I enabled it for this blog.
&lt;/p&gt;

&lt;p&gt;
I &lt;i&gt;was&lt;/i&gt; thinking of using &lt;a href="https://posativ.org/isso/"&gt;isso&lt;/a&gt; as a commenting server, thus having complete
control of the entire webstack, but in the end, I decided it was bit too much of
a hassle for such a small site this, so I simply decided to configure Nikola to
use &lt;a href="https://disqus.com/"&gt;disqus&lt;/a&gt; instead.
&lt;/p&gt;

&lt;p&gt;
Still, if I ever change my mind I can always export things from &lt;code&gt;disqus&lt;/code&gt;, so
moving things over to &lt;code&gt;isso&lt;/code&gt; shouldn't be too difficult.
&lt;/p&gt;

&lt;p&gt;
Update 2024: For now I've simply decided to disable comments, however.
&lt;/p&gt;</description><category>comments</category><guid>https://gustafwaldemarson.com/posts/comments/</guid><pubDate>Wed, 01 Mar 2017 12:20:10 GMT</pubDate></item><item><title>Printf Format Highlighting</title><link>https://gustafwaldemarson.com/posts/printf-format-highlighting-in-emacs/</link><dc:creator>Gustaf Waldemarson</dc:creator><description>&lt;div&gt;&lt;p&gt;
Most of my work is done in either &lt;code&gt;C&lt;/code&gt; or &lt;code&gt;C++&lt;/code&gt;, so I frequently use the &lt;code&gt;printf&lt;/code&gt;
family of functions to write a wide variety of stuff to the display. Naturally,
I'd like the format specifiers to stand out from the rest of the characters in
the strings, so for the longest time I used this piece of &lt;code&gt;elisp&lt;/code&gt; code to
achieve that:
&lt;/p&gt;

&lt;p&gt;&lt;a href="https://gustafwaldemarson.com/posts/printf-format-highlighting-in-emacs/"&gt;Read more…&lt;/a&gt; (2 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>elisp</category><category>emacs</category><category>printf</category><category>regexp</category><guid>https://gustafwaldemarson.com/posts/printf-format-highlighting-in-emacs/</guid><pubDate>Mon, 27 Feb 2017 08:24:55 GMT</pubDate></item></channel></rss>