<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Web-Annotation on Digital Archive Systems Tech Blog</title><link>https://tech.ldas.jp/en/tags/web-annotation/</link><description>Recent content in Web-Annotation on Digital Archive Systems Tech Blog</description><generator>Hugo</generator><language>en</language><lastBuildDate>Thu, 07 May 2026 08:30:00 +0900</lastBuildDate><atom:link href="https://tech.ldas.jp/en/tags/web-annotation/index.xml" rel="self" type="application/rss+xml"/><item><title>Aligning IIIF 3D Viewer with Presentation API 4 — converting legacy manifests at runtime</title><link>https://tech.ldas.jp/en/posts/iiif-3d-viewer-presentation-api-4-converter/</link><pubDate>Thu, 07 May 2026 08:30:00 +0900</pubDate><guid>https://tech.ldas.jp/en/posts/iiif-3d-viewer-presentation-api-4-converter/</guid><description>&lt;blockquote>
&lt;p>This article was co-written with a generative AI. I cross-checked the facts against primary sources where I could, but errors may remain. Please consult the primary sources before relying on it for important decisions.&lt;/p>&lt;/blockquote>
&lt;h1 id="what-i-did">What I did&lt;/h1>
&lt;p>&lt;a href="https://github.com/nakamura196/iiif-3d-viewer">IIIF 3D Viewer&lt;/a> is a Next.js app for viewing glTF/GLB 3D models and their annotations as delivered by IIIF Manifests. Until now it ran on IIIF Presentation API 3.0 manifests with a project-local extension — a custom &lt;code>3DSelector&lt;/code> for points / polygons and a &lt;code>camPos&lt;/code> field on the selector for the recommended camera state.&lt;/p></description></item></channel></rss>