{"docs":[{"id":4,"title":"base.org","year":2025,"slug":"base-org","summary":"Contributions to base.org's old website.","body":null,"kind":"basement","client":{"name":"base.org","url":"https://base.org/"},"stack":[{"id":"6a83c846c1670661f3dc9775","name":"Next.js"},{"id":"6a83c849c1670661f3dc9777","name":"WebGL"},{"id":"6a83c84dc1670661f3dc9779","name":"Three.js"}],"role":[{"id":"6a83c882c1670661f3dc977d","name":"Contributed to the homepage's UI and all shader scenes present in the site, which are still used today. "}],"media":[{"id":"6a83c8bfc1670661f3dc977f","webm":{"id":24,"alt":"base.org demo","updatedAt":"2026-08-25T15:57:35.377Z","createdAt":"2026-08-25T15:28:27.101Z","url":"/api/media/file/base-org-eWmOVJT54zXhoVtKBie2QPeQxHqQhq.webm","thumbnailURL":null,"filename":"base-org-eWmOVJT54zXhoVtKBie2QPeQxHqQhq.webm","mimeType":"video/webm","filesize":1435402,"width":1291,"height":810,"focalX":null,"focalY":null},"mp4":{"id":25,"alt":"base.org demo","updatedAt":"2026-08-25T15:57:36.245Z","createdAt":"2026-08-25T15:28:29.220Z","url":"/api/media/file/base-org-zA83yp2kmJlpV4aRzy2ZdynwixGf6m.mp4","thumbnailURL":null,"filename":"base-org-zA83yp2kmJlpV4aRzy2ZdynwixGf6m.mp4","mimeType":"video/mp4","filesize":3996583,"width":1440,"height":904,"focalX":null,"focalY":null},"poster":{"id":17,"alt":"base.org poster","updatedAt":"2026-08-18T02:52:19.367Z","createdAt":"2026-08-18T02:52:17.667Z","url":"/api/media/file/base-poster-EpQzJHcFeueyWqev2Ft3Kmx1waA5Dg.webp","thumbnailURL":null,"filename":"base-poster-EpQzJHcFeueyWqev2Ft3Kmx1waA5Dg.webp","mimeType":"image/webp","filesize":10504,"width":3024,"height":1900,"focalX":50,"focalY":50},"blockName":null,"blockType":"video"}],"links":[{"id":"6a83c8c5c1670661f3dc9781","label":"base.org","url":"https://base.org/"}],"order":4,"span":"half","badge":null,"updatedAt":"2026-08-25T15:28:32.288Z","createdAt":"2026-08-18T02:53:11.951Z"},{"id":3,"title":"basement.studio","year":2025,"slug":"basement","summary":"basement's website. ","body":null,"kind":"basement","client":{"name":null,"url":null},"stack":[{"id":"6a83bd6c51c6f5e8c5f053ed","name":"Next.js"},{"id":"6a83bd7151c6f5e8c5f053ef","name":"Three.js"},{"id":"6a83bd7551c6f5e8c5f053f1","name":"WebGL"}],"role":[{"id":"6a83bd8551c6f5e8c5f053f5","name":"Worked on several features of the 3D scene. Made the basketball minigame, the 404, contributed to the inspectables, the arcade's easter egg, the contact rendering and animations, and more. Also made the songs that play from the speakers!"}],"media":[{"id":"6a83bde551c6f5e8c5f053f9","webm":{"id":22,"alt":"basement demo","updatedAt":"2026-08-25T15:57:33.646Z","createdAt":"2026-08-25T15:28:18.102Z","url":"/api/media/file/basement-puof0toGTEO103yqJVVYrqthuNm5SG.webm","thumbnailURL":null,"filename":"basement-puof0toGTEO103yqJVVYrqthuNm5SG.webm","mimeType":"video/webm","filesize":2893632,"width":1291,"height":810,"focalX":null,"focalY":null},"mp4":{"id":23,"alt":"basement demo","updatedAt":"2026-08-25T15:57:34.494Z","createdAt":"2026-08-25T15:28:20.697Z","url":"/api/media/file/basement-lExfubAbxoScCirEbAC34U1fvB3Z6e.mp4","thumbnailURL":null,"filename":"basement-lExfubAbxoScCirEbAC34U1fvB3Z6e.mp4","mimeType":"video/mp4","filesize":5007218,"width":1440,"height":904,"focalX":null,"focalY":null},"poster":{"id":16,"alt":"basement poster","updatedAt":"2026-08-18T02:41:21.171Z","createdAt":"2026-08-18T02:41:19.055Z","url":"/api/media/file/basement-poster-JRxHaVW2BGDAi1SSWbkQ31LIpHDBSA.webp","thumbnailURL":null,"filename":"basement-poster-JRxHaVW2BGDAi1SSWbkQ31LIpHDBSA.webp","mimeType":"image/webp","filesize":346354,"width":3024,"height":1900,"focalX":50,"focalY":50},"blockName":null,"blockType":"video"}],"links":[{"id":"6a83bdd851c6f5e8c5f053f7","label":"basement.studio","url":"https://basement.studio/"}],"order":3,"span":"half","badge":null,"updatedAt":"2026-08-25T15:28:24.297Z","createdAt":"2026-08-18T02:07:19.139Z"},{"id":2,"title":"Annex","year":2026,"slug":"annex","summary":"A fully local MacOS app to keep all your inspo in a single space. Keep it synced with X bookmarks, local folders, Pinterest, Cosmos, you name it.","body":null,"kind":"personal","client":{"name":null,"url":null},"stack":[{"id":"6a83b11533d70a9563b5175d","name":"Vercel Native"},{"id":"6a83b18833d70a9563b51763","name":"Three.js"},{"id":"6a83b1a033d70a9563b51767","name":"WebGPU"}],"role":[],"media":[{"id":"6a83b26e33d70a9563b51769","webm":{"id":20,"alt":"Annex product demo","updatedAt":"2026-08-25T15:57:31.937Z","createdAt":"2026-08-25T15:26:58.016Z","url":"/api/media/file/annex-YMXeTFINGJwyJIHB8ZIM9tCQcDL93k.webm","thumbnailURL":null,"filename":"annex-YMXeTFINGJwyJIHB8ZIM9tCQcDL93k.webm","mimeType":"video/webm","filesize":3792949,"width":1440,"height":810,"focalX":null,"focalY":null},"mp4":{"id":21,"alt":"Annex product demo","updatedAt":"2026-08-25T15:57:32.787Z","createdAt":"2026-08-25T15:27:00.867Z","url":"/api/media/file/annex-0fL1HuScyljrADVBZ0CQUJ9ufs7Q9v.mp4","thumbnailURL":null,"filename":"annex-0fL1HuScyljrADVBZ0CQUJ9ufs7Q9v.mp4","mimeType":"video/mp4","filesize":4962239,"width":1440,"height":810,"focalX":null,"focalY":null},"poster":{"id":6,"alt":"Annex demo poster","updatedAt":"2026-08-18T01:19:16.246Z","createdAt":"2026-08-18T01:19:14.751Z","url":"/api/media/file/annex-demo-poster-BKbWwLG4HzC1LyaRLnmx3DOnKovcci.webp","thumbnailURL":null,"filename":"annex-demo-poster-BKbWwLG4HzC1LyaRLnmx3DOnKovcci.webp","mimeType":"image/webp","filesize":12596,"width":3024,"height":1704,"focalX":50,"focalY":50},"blockName":null,"blockType":"video"}],"links":[],"order":2,"span":"full","badge":null,"updatedAt":"2026-08-25T15:27:04.919Z","createdAt":"2026-08-18T01:12:33.839Z"},{"id":1,"title":"Shader Lab","year":2026,"slug":"shader-lab","summary":"Open-source browser tool for stacking shader layers over images, video and audio, with custom TSL compiling live on three.js and WebGPU. Ships an MCP server, so agents can author shaders in it too.","body":null,"kind":"personal","client":{"name":null,"url":null},"stack":[{"id":"6a810acc846e301d636ed110","name":"Three.js"},{"id":"6a810ad7846e301d636ed112","name":"WebGPU"},{"id":"6a810add846e301d636ed114","name":"TSL"},{"id":"6a810ae0846e301d636ed116","name":"Next.js"}],"role":[{"id":"6a810aec846e301d636ed118","name":"Creator and maintainer"}],"media":[{"id":"6a812e85298fb05ea29fb96e","webm":{"id":9,"alt":"Shader Lab demo","updatedAt":"2026-08-25T15:57:31.097Z","createdAt":"2026-08-18T01:27:09.959Z","url":"/api/media/file/shader-lab-4RRaJkGmtaWkmMcrNY1OnFDNEOYGhe.webm","thumbnailURL":null,"filename":"shader-lab-4RRaJkGmtaWkmMcrNY1OnFDNEOYGhe.webm","mimeType":"video/webm","filesize":1087339,"width":1098,"height":610,"focalX":null,"focalY":null},"mp4":{"id":8,"alt":"Shader Lab demo","updatedAt":"2026-08-25T15:57:30.232Z","createdAt":"2026-08-18T01:26:57.540Z","url":"/api/media/file/shader-lab-M4LrJpqW73ukhjGivOWwnMluD1hDrp.mp4","thumbnailURL":null,"filename":"shader-lab-M4LrJpqW73ukhjGivOWwnMluD1hDrp.mp4","mimeType":"video/mp4","filesize":477127,"width":1098,"height":610,"focalX":null,"focalY":null},"poster":{"id":26,"alt":"Shader Lab demo poster","updatedAt":"2026-08-25T16:04:28.250Z","createdAt":"2026-08-25T16:04:27.080Z","url":"/api/media/file/shader-lab-poster-53mvwKeIEYvsJIBU0YSYgRKUv2xegj.webp","thumbnailURL":null,"filename":"shader-lab-poster-53mvwKeIEYvsJIBU0YSYgRKUv2xegj.webp","mimeType":"image/webp","filesize":23036,"width":1098,"height":610,"focalX":50,"focalY":50},"blockName":null,"blockType":"video"}],"links":[{"id":"6a83b4fa914f02582921e322","label":"Shader Lab","url":"https://eng.basement.studio/tools/shader-lab"}],"order":1,"span":"full","badge":"Open source","updatedAt":"2026-08-31T22:58:33.508Z","createdAt":"2026-08-16T00:59:48.236Z"}],"hasNextPage":false,"hasPrevPage":false,"limit":10,"nextPage":null,"page":1,"pagingCounter":1,"prevPage":null,"totalDocs":4,"totalPages":1}