41554 blogs · [ { "id": "01a0bdd9-212d-7147-98d2-faacb0bed135", "title": "Spark 1.4", "url": "https://www.ludicon.com/castano/blog/2026/09/spark-1-4/", "published_at": "2026-09-17T20:17:03+00:00" }, { "id": "01a0879d-2b06-7089-a0db-8107e0b7b032", "title": "Spark for Unity", "url": "https://www.ludicon.com/castano/blog/2026/06/spark-for-unity/", "published_at": "2026-06-04T16:46:59+00:00" }, { "id": "01a0879d-2b06-7089-a0db-8107e171d0f8", "title": "Image Loading on the Web", "url": "https://www.ludicon.com/castano/blog/2026/05/image-loading-on-the-web/", "published_at": "2026-05-05T03:27:16+00:00" }, { "id": "01a0879d-2b06-7089-a0db-8107e1e6f303", "title": "Metal Lossy Compression Format", "url": "https://www.ludicon.com/castano/blog/2026/04/metal-lossy-compression-format/", "published_at": "2026-04-24T18:05:50+00:00" }, { "id": "01a0879d-2b06-7089-a0db-8107e2c05048", "title": "The True Size of ASTC Textures", "url": "https://www.ludicon.com/castano/blog/2026/04/the-true-size-of-astc-textures/", "published_at": "2026-04-15T09:26:50+00:00" }, { "id": "01a0879d-2b06-7089-a0db-8107e2c38747", "title": "Writing to Compressed Textures in Metal", "url": "https://www.ludicon.com/castano/blog/2026/04/writing-to-compressed-textures-in-metal/", "published_at": "2026-04-11T02:17:40+00:00" }, { "id": "01a0879d-2b06-7089-a0db-8107e30102c3", "title": "Hardware Image Compression", "url": "https://www.ludicon.com/castano/blog/2026/03/hardware-image-compression/", "published_at": "2026-03-28T08:44:11+00:00" }, { "id": "01a0879d-2b06-7089-a0db-8107e3f970a8", "title": "Announcing spark.js 0.1", "url": "https://www.ludicon.com/castano/blog/2026/03/announcing-spark-js-0-1/", "published_at": "2026-03-05T08:59:15+00:00" }, { "id": "01a0879d-2b06-7089-a0db-8107e42f1530", "title": "Runtime Mipmap Generation", "url": "https://www.ludicon.com/castano/blog/2026/02/runtime-mipmap-generation/", "published_at": "2026-02-18T08:53:40+00:00" }, { "id": "01a0879d-2b06-7089-a0db-8107e4de9cf3", "title": "An Updated Sponza glTF", "url": "https://www.ludicon.com/castano/blog/2026/02/an-updated-sponza-gltf/", "published_at": "2026-02-09T23:47:37+00:00" }, { "id": "01a0879d-2b06-7089-a0db-8107e55b3def", "title": "Normal Map Compression Revisited", "url": "https://www.ludicon.com/castano/blog/2026/02/normal-map-compression-revisited/", "published_at": "2026-02-05T02:49:13+00:00" }, { "id": "01a0bb4f-dd18-7251-8d24-f8ca43629752", "title": "Choosing Texture Formats for WebGPU applications", "url": "https://www.ludicon.com/castano/blog/2026/01/choosing-texture-formats-for-webgpu-applications/", "published_at": "2026-01-26T20:58:49+00:00" }, { "id": "01a0bb4f-dd18-7251-8d24-f8ca43c8f3c5", "title": "three.js + spark.js", "url": "https://www.ludicon.com/castano/blog/2025/09/three-js-spark-js/", "published_at": "2025-09-09T07:06:21+00:00" }, { "id": "01a0bb4f-dd18-7251-8d24-f8ca441e9ba7", "title": "Spark 1.3 and spark.js", "url": "https://www.ludicon.com/castano/blog/2025/08/spark-1-3-and-spark-js/", "published_at": "2025-08-06T18:26:19+00:00" }, { "id": "01a0bb4f-dd18-7251-8d24-f8ca44a44812", "title": "Spark 1.2", "url": "https://www.ludicon.com/castano/blog/2025/03/spark-1-2/", "published_at": "2025-03-06T18:31:21+00:00" }, { "id": "01a0bb4f-dd18-7251-8d24-f8ca456d2896", "title": "GPU Texture Compression Everywhere", "url": "https://www.ludicon.com/castano/blog/2025/02/gpu-texture-compression-everywhere/", "published_at": "2025-02-20T09:20:15+00:00" }, { "id": "01a0bb4f-dd18-7251-8d24-f8ca45a2274b", "title": "Tools for GPU Codec Development", "url": "https://www.ludicon.com/castano/blog/2024/12/tools-for-gpu-codec-development/", "published_at": "2025-01-01T00:02:52+00:00" }, { "id": "01a0bb4f-dd18-7251-8d24-f8ca461b9119", "title": "Crossing the Ludicon", "url": "https://www.ludicon.com/castano/blog/2022/11/crossing-the-ludicon/", "published_at": "2022-11-13T09:24:05+00:00" }, { "id": "01a0bb4f-dd18-7251-8d24-f8ca4690ddd0", "title": "BC1 Compression Revisited", "url": "https://www.ludicon.com/castano/blog/2022/11/bc1-compression-revisited/", "published_at": "2022-11-09T07:52:08+00:00" }, { "id": "01a0bb4f-dd18-7251-8d24-f8ca4709bd8b", "title": "My DMV Experience", "url": "https://www.ludicon.com/castano/blog/2019/12/dmv/", "published_at": "2019-12-21T09:13:01+00:00" }, { "id": "01a0bb58-e154-70f2-b58b-057a30cdba5c", "title": "“Climbing a big mountain is hard”", "url": "https://www.ludicon.com/castano/blog/2019/04/climbing-a-big-mountain-is-hard/", "published_at": "2019-04-26T07:50:50+00:00" }, { "id": "01a0bb58-e154-70f2-b58b-057a3195a977", "title": "Ladybugs", "url": "https://www.ludicon.com/castano/blog/2019/03/ladybugs/", "published_at": "2019-03-13T08:10:30+00:00" }, { "id": "01a0bb58-e154-70f2-b58b-057a31dd9217", "title": "Castle Peak 2015 – 2019", "url": "https://www.ludicon.com/castano/blog/2019/01/castle-peak-2015-2019/", "published_at": "2019-01-28T08:43:20+00:00" }, { "id": "01a0bb58-e154-70f2-b58b-057a324cb17c", "title": "2018 Recap", "url": "https://www.ludicon.com/castano/blog/2019/01/2018-recap/", "published_at": "2019-01-20T03:51:53+00:00" }, { "id": "01a0bb58-e154-70f2-b58b-057a3289196b", "title": "Lightmap optimizations for iOS", "url": "https://www.ludicon.com/castano/blog/2017/10/lightmap-optimizations-ios/", "published_at": "2017-10-06T06:50:10+00:00" }, { "id": "01a0bb58-e154-70f2-b58b-057a32926018", "title": "Lightmap Compression in The Witness", "url": "https://www.ludicon.com/castano/blog/2016/09/lightmap-compression-in-the-witness/", "published_at": "2016-10-01T00:35:16+00:00" }, { "id": "01a0bb58-e154-70f2-b58b-057a333cccc1", "title": "D3DX UVAtlas released", "url": "https://www.ludicon.com/castano/blog/2014/12/d3dx-uvatlas-released/", "published_at": "2014-12-05T20:11:28+00:00" }, { "id": "01a0bb58-e154-70f2-b58b-057a33d113e8", "title": "First Backpacking Trip", "url": "https://www.ludicon.com/castano/blog/2014/09/first-backpacking-trip/", "published_at": "2014-09-17T18:18:14+00:00" }, { "id": "01a0bb58-e154-70f2-b58b-057a342ba0a8", "title": "HLSLParser", "url": "https://www.ludicon.com/castano/blog/2014/08/hlslparser/", "published_at": "2014-08-29T08:42:12+00:00" }, { "id": "01a0bb58-e154-70f2-b58b-057a3476b2ca", "title": "Irradiance Caching – Continued", "url": "https://www.ludicon.com/castano/blog/2014/07/irradiance-caching-continued/", "published_at": "2014-07-10T08:06:45+00:00" }, { "id": "01a0bb61-1fb4-730d-8386-4b33fa9d1666", "title": "Irradiance Caching – Part 1", "url": "https://www.ludicon.com/castano/blog/2011/07/irradiance-caching-part-1/", "published_at": "2011-07-14T08:41:19+00:00" }, { "id": "01a0bb61-1fb4-730d-8386-4b33faf5ba9c", "title": "We are hiring!", "url": "https://www.ludicon.com/castano/blog/2011/04/we-are-hiring/", "published_at": "2011-04-05T23:02:20+00:00" }, { "id": "01a0bb61-1fb4-730d-8386-4b33fb9f60d4", "title": "Software Patents are Programmer’s Responsibility", "url": "https://www.ludicon.com/castano/blog/2010/11/software-patents-are-programmers-responsibility/", "published_at": "2010-11-30T08:56:43+00:00" }, { "id": "01a0bb61-1fb4-730d-8386-4b33fc43ae58", "title": "Matt’s Gregory ACC Tessellation Render", "url": "https://www.ludicon.com/castano/blog/2010/10/matts-gregory-acc-tessellation-render/", "published_at": "2010-10-18T22:54:59+00:00" }, { "id": "01a0bb61-1fb4-730d-8386-4b33fc72d52e", "title": "Hemicube Rendering and Integration", "url": "https://www.ludicon.com/castano/blog/2010/09/hemicube-rendering-and-integration/", "published_at": "2010-09-30T01:31:18+00:00" }, { "id": "01a0bb61-1fb4-730d-8386-4b33fd3f6ded", "title": "Watertight Tessellation: precise and fma", "url": "https://www.ludicon.com/castano/blog/2010/09/precise/", "published_at": "2010-09-17T07:48:39+00:00" }, { "id": "01a0bb61-1fb4-730d-8386-4b33fd6c74b7", "title": "Back Online", "url": "https://www.ludicon.com/castano/blog/2010/09/back-online/", "published_at": "2010-09-15T07:01:47+00:00" }, { "id": "01a0bb61-1fb4-730d-8386-4b33fd8851a5", "title": "Life", "url": "https://www.ludicon.com/castano/blog/2010/05/life/", "published_at": "2010-05-05T07:51:34+00:00" }, { "id": "01a0bb61-1fb4-730d-8386-4b33fe5a0335", "title": "The Witness", "url": "https://www.ludicon.com/castano/blog/2010/03/the-witness/", "published_at": "2010-03-06T07:51:25+00:00" }, { "id": "01a0bb61-1fb4-730d-8386-4b33fef3feba", "title": "OpenNL 3.0", "url": "https://www.ludicon.com/castano/blog/2010/02/opennl-3-0/", "published_at": "2010-02-05T07:51:41+00:00" }, { "id": "01a0bb67-4b67-70f5-bbbe-363eb8d59781", "title": "Pâté", "url": "https://www.ludicon.com/castano/blog/2009/12/pate/", "published_at": "2009-12-20T07:50:19+00:00" }, { "id": "01a0bb67-4b67-70f5-bbbe-363eb9103562", "title": "Biking", "url": "https://www.ludicon.com/castano/blog/2009/11/biking/", "published_at": "2009-11-16T00:30:54+00:00" }, { "id": "01a0bb67-4b67-70f5-bbbe-363eba07059c", "title": "New Job", "url": "https://www.ludicon.com/castano/blog/2009/11/new-job/", "published_at": "2009-11-09T08:16:57+00:00" }, { "id": "01a0bb67-4b67-70f5-bbbe-363eba202073", "title": "Continuity Mapping for Multi-Chart Textures", "url": "https://www.ludicon.com/castano/blog/2009/09/continuity-mapping-for-multi-chart-textures/", "published_at": "2009-10-01T00:33:21+00:00" }, { "id": "01a0bb67-4b67-70f5-bbbe-363ebae77de6", "title": "Davis Aquatic Masters", "url": "https://www.ludicon.com/castano/blog/2009/09/davis-aquatic-masters/", "published_at": "2009-10-01T00:28:42+00:00" }, { "id": "01a0bb67-4b67-70f5-bbbe-363ebb8af355", "title": "Camping in the Redwoods", "url": "https://www.ludicon.com/castano/blog/2009/09/camping-in-the-redwoods/", "published_at": "2009-09-13T07:50:09+00:00" }, { "id": "01a0bb67-4b67-70f5-bbbe-363ebc6a9ab9", "title": "Rice with milk", "url": "https://www.ludicon.com/castano/blog/2009/07/rice-with-milk/", "published_at": "2009-07-22T07:50:51+00:00" }, { "id": "01a0bb67-4b67-70f5-bbbe-363ebcbf630c", "title": "Salmorejo means food in summer", "url": "https://www.ludicon.com/castano/blog/2009/07/salmorejo-means-food-in-summer/", "published_at": "2009-07-11T07:50:02+00:00" }, { "id": "01a0bb67-4b67-70f5-bbbe-363ebdb7f07d", "title": "Efficient Substitutes for Subdivision Surfaces", "url": "https://www.ludicon.com/castano/blog/2009/05/efficient-substitutes-for-subdivision-surfaces/", "published_at": "2009-05-13T00:50:27+00:00" }, { "id": "01a0bb67-4b67-70f5-bbbe-363ebe613204", "title": "NVTT quote", "url": "https://www.ludicon.com/castano/blog/2009/04/nvtt-quote/", "published_at": "2009-04-25T00:40:13+00:00" }, { "id": "01a0bb6b-af6e-7309-ab23-3b1b59d8d067", "title": "Standing Desk 2", "url": "https://www.ludicon.com/castano/blog/2009/04/standing-desk-2/", "published_at": "2009-04-25T00:37:09+00:00" }, { "id": "01a0bb6b-af6e-7309-ab23-3b1b5aa900a0", "title": "NVIDIA Texture Tools 2.0.6", "url": "https://www.ludicon.com/castano/blog/2009/03/nvidia-texture-tools-2-0-6/", "published_at": "2009-03-21T07:49:31+00:00" }, { "id": "01a0bb6b-af6e-7309-ab23-3b1b5ac4a04f", "title": "GPU DXT Decompression", "url": "https://www.ludicon.com/castano/blog/2009/03/gpu-dxt-decompression/", "published_at": "2009-03-20T07:49:12+00:00" }, { "id": "01a0bb6b-af6e-7309-ab23-3b1b5aee70a7", "title": "Ham and Beans", "url": "https://www.ludicon.com/castano/blog/2009/03/ham-and-beans/", "published_at": "2009-03-19T07:50:26+00:00" }, { "id": "01a0bb6b-af6e-7309-ab23-3b1b5bc30b94", "title": "Optimal Grid Rendering", "url": "https://www.ludicon.com/castano/blog/2009/02/optimal-grid-rendering/", "published_at": "2009-02-03T07:48:35+00:00" }, { "id": "01a0bb6b-af6e-7309-ab23-3b1b5cb01c5c", "title": "ACMR", "url": "https://www.ludicon.com/castano/blog/2009/01/acmr-2/", "published_at": "2009-01-30T07:51:51+00:00" }, { "id": "01a0bb6b-af6e-7309-ab23-3b1b5da794f7", "title": "Real-Time Creased Approximate Subdivision Surfaces", "url": "https://www.ludicon.com/castano/blog/2009/01/real-time-creased-approximate-subdivision-surfaces/", "published_at": "2009-01-28T07:48:57+00:00" }, { "id": "01a0bb6b-af6e-7309-ab23-3b1b5de32293", "title": "10 Fun Things to do with Tessellation", "url": "https://www.ludicon.com/castano/blog/2009/01/10-fun-things-to-do-with-tessellation/", "published_at": "2009-01-11T07:49:39+00:00" }, { "id": "01a0bb6b-af6e-7309-ab23-3b1b5e593db7", "title": "Ownership-based Zippering", "url": "https://www.ludicon.com/castano/blog/2009/01/ownership-based-zippering/", "published_at": "2009-01-11T07:48:47+00:00" }, { "id": "01a0bb6b-af6e-7309-ab23-3b1b5f4ecdb9", "title": "Approximate Subdivision Shading", "url": "https://www.ludicon.com/castano/blog/2009/01/approximate-subdivision-shading/", "published_at": "2009-01-07T18:55:18+00:00" }, { "id": "01a0bb6f-a4d5-71ec-b41c-01dca21c9cf3", "title": "Watertight Texture Sampling", "url": "https://www.ludicon.com/castano/blog/2009/01/watertight-texture-sampling/", "published_at": "2009-01-02T07:49:21+00:00" }, { "id": "01a0bb6f-a4d5-71ec-b41c-01dca2762975", "title": "The foie gras parable", "url": "https://www.ludicon.com/castano/blog/2008/12/the-foie-gras-parable/", "published_at": "2008-12-11T01:07:30+00:00" }, { "id": "01a0bb6f-a4d5-71ec-b41c-01dca29509ea", "title": "Gamefest Presentations", "url": "https://www.ludicon.com/castano/blog/2008/09/gamefest-presentations/", "published_at": "2008-09-10T07:51:17+00:00" }, { "id": "01a0bb6f-a4d5-71ec-b41c-01dca2a14132", "title": "nvidia-widgets", "url": "https://www.ludicon.com/castano/blog/2008/08/nvidia-widgets/", "published_at": "2008-08-27T07:51:01+00:00" }, { "id": "01a0bb6f-a4d5-71ec-b41c-01dca2c6c36d", "title": "Moving", "url": "https://www.ludicon.com/castano/blog/2008/08/moving/", "published_at": "2008-08-25T08:37:04+00:00" } ] posts Claim your blog
Back to ludicon.com
Blog · corpus.blog/blogs/ludicon.com/posts

ludicon.com

ludicon.com

2026

2025

2022

2019

2017

2016

2014

2011

2010

2009

30 Jan 2009

2008