Help
RSS
API
Feed
Maltego
Contact
Domain > theor.xyz
×
Welcome!
Right click nodes and scroll the mouse to navigate the graph.
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2021-10-30
184.72.19.87
(
ClassC
)
2024-07-04
52.9.166.110
(
ClassC
)
Port 443
HTTP/1.1 200 OKAccept-Ranges: bytesAge: 417965Cache-Control: public,max-age0,must-revalidateCache-Status: Netlify Edge; hitContent-Length: 24154Content-Type: text/html; charsetUTF-8Date: Thu, 04 Jul 2024 21:35:15 GMTEtag: d778b95437573e5759eb152f2a6a10ac-sslServer: NetlifyStrict-Transport-Security: max-age31536000X-Nf-Request-Id: 01J1ZTRHHSWDX4Q10S8X585JSK !DOCTYPE html>html langen data-astro-cid-j7pv25f6>head>script async srchttps://www.googletagmanager.com/gtag/js?idG-Q8R397KD5D>/script>script> window.dataLayer window.dataLayer || ; function gtag(){dataLayer.push(arguments);} gtag(js, new Date()); gtag(config, G-Q8R397KD5D);/script>!-- Global Metadata -->meta charsetutf-8>meta nameviewport contentwidthdevice-width,initial-scale1>link relicon href/favicon.ico>meta namegenerator contentAstro v3.0.1>!-- Canonical URL -->link relcanonical hrefhttps://theor.xyz/>!-- Primary Meta Tags -->title>theor/title>meta nametitle contenttheor>meta namedescription contentsolutions looking for problems>!-- Open Graph / Facebook -->meta propertyog:type contentwebsite>meta propertyog:url contenthttps://theor.xyz/>meta propertyog:title contenttheor>meta propertyog:description contentsolutions looking for problems>meta propertyog:image contenthttps://theor.xyz/profile-pic.png>!-- Twitter -->meta propertytwitter:card contentsummary_large_image>meta propertytwitter:url contenthttps://theor.xyz/>meta propertytwitter:title contenttheor>meta propertytwitter:description contentsolutions looking for problems>meta propertytwitter:image contenthttps://theor.xyz/profile-pic.png>link relstylesheet href/_astro/tags.cfd8e2e8.css />style typetext/css>footerdata-astro-cid-sz7xmlte{padding:25px;text-align:center}uldata-astro-cid-j7pv25f6{list-style-type:none;padding:unset}uldata-astro-cid-j7pv25f6 lidata-astro-cid-j7pv25f6{display:flex}uldata-astro-cid-j7pv25f6 lidata-astro-cid-j7pv25f6 time{flex:0 0 130px;font-style:italic;color:#595959}uldata-astro-cid-j7pv25f6 lidata-astro-cid-j7pv25f6 adata-astro-cid-j7pv25f6:visited{color:#8e32dc}.post-previewdata-astro-cid-j7pv25f6{margin-bottom:var(--spacing-8)}.post-previewdata-astro-cid-j7pv25f6 adata-astro-cid-j7pv25f6.abstract{text-decoration:none;color:inherit}.post-previewdata-astro-cid-j7pv25f6 h1data-astro-cid-j7pv25f6{margin:unset}.post-previewdata-astro-cid-j7pv25f6 imgdata-astro-cid-j7pv25f6{width:100%;height:100px;object-fit:cover;object-position:center}videodata-astro-cid-j7pv25f6{width:100%;height:100px;object-fit:cover;object-position:center}.metadatadata-astro-cid-w5rua66a{display:flex;flex-wrap:wrap;margin-bottom:var(--spacing-2)}.metadatadata-astro-cid-w5rua66a data-astro-cid-w5rua66aastro-icon{width:1rem;margin-right:var(--spacing-1)}.metadatadata-astro-cid-w5rua66a data-astro-cid-w5rua66a{color:var(--color-text-light)}.metadatadata-astro-cid-w5rua66a spandata-astro-cid-w5rua66a.sep{margin:0 var(--spacing-1) 0 var(--spacing-2)}.metadatadata-astro-cid-w5rua66a .tagdata-astro-cid-w5rua66a{margin-right:var(--spacing-2);margin-right:var(--spacing-1)}divdata-astro-cid-rgsevgww{min-height:var(--wasmheight)}/style>script typemodule src/_astro/hoisted.a05da68c.js>/script>/head>body data-astro-cid-j7pv25f6>header data-astro-cid-3ef6ksr2>div classtitle data-astro-cid-3ef6ksr2>video autoplay muted poster/profile-pic.png preloadmetadata altlogo data-astro-cid-3ef6ksr2>source src/out-1.webm typevideo/webm data-astro-cid-3ef6ksr2>source src/out-1.mp4 typevideo/mp4 data-astro-cid-3ef6ksr2>/video>h1 data-astro-cid-3ef6ksr2>theor/h1>span data-astro-cid-3ef6ksr2>solutions looking for problems/span>nav data-astro-cid-3ef6ksr2>a href/ classactive data-astro-cid-3ef6ksr2 data-astro-cid-eimmu3lg>Home/a>a href/about data-astro-cid-3ef6ksr2 data-astro-cid-eimmu3lg>About/a>!-- HeaderLink hrefhttps://twitter.com/astrodotbuild target_blank>Twitter/HeaderLink> -->a hrefhttps://github.com/theor target_blank data-astro-cid-3ef6ksr2 data-astro-cid-eimmu3lg>GitHub/a>a href/rss.xml data-astro-cid-3ef6ksr2 data-astro-cid-eimmu3lg>svg viewBox0 0 24 24 data-astro-cid-3ef6ksr2 astro-iconmdi:rss>path fillcurrentColor dM6.18 15.64a2.18 2.18 0 0 1 2.18 2.18C8.36 19 7.38 20 6.18 20 5 20 4 19 4 17.82a2.18 2.18 0 0 1 2.18-2.18M4 4.44A15.56 15.56 0 0 1 19.56 20h-2.83A12.73 12.73 0 0 0 4 7.27V4.44m0 5.66a9.9 9.9 0 0 1 9.9 9.9h-2.83A7.07 7.07 0 0 0 4 12.93V10.1z/>/svg>/a>/nav>/div>/header>main data-astro-cid-j7pv25f6>section data-astro-cid-j7pv25f6>div classpost-preview data-astro-cid-j7pv25f6>h1 data-astro-cid-j7pv25f6>a href/rust-wasm-demo-effects/ data-astro-cid-j7pv25f6>Demo effects using Rust and WebAssembly/a>/h1>video loop muted autoplay src/_astro/_banner.6dc60b5f.webm data-astro-cid-j7pv25f6>/video>div classmetadata data-astro-cid-w5rua66a>svg viewBox0 0 24 24 data-astro-cid-w5rua66a astro-iconmdi:calendar>path fillcurrentColor dM19 19H5V8h14m-3-7v2H8V1H6v2H5c-1.11 0-2 .89-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2h-1V1m-1 11h-5v5h5v-5z/>/svg>time datetime2023-04-15T15:43:14.015Z>4/15/2023/time>span classsep data-astro-cid-w5rua66a> | /span>svg viewBox-3 -3 25 25 data-astro-cid-w5rua66a astro-iconmdi:clock>path fillcurrentColor dM12 2A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2m4.2 14.2L11 13V7h1.5v5.2l4.5 2.7-.8 1.3z/>/svg>12 minspan classsep data-astro-cid-w5rua66a> | /span>svg viewBox-3 -3 25 25 data-astro-cid-w5rua66a astro-iconmdi:tags>path fillcurrentColor dM5.5 9A1.5 1.5 0 0 0 7 7.5 1.5 1.5 0 0 0 5.5 6 1.5 1.5 0 0 0 4 7.5 1.5 1.5 0 0 0 5.5 9m11.91 2.58c.36.36.59.86.59 1.42 0 .55-.22 1.05-.59 1.41l-5 5a1.996 1.996 0 0 1-2.83 0l-6.99-6.99C2.22 12.05 2 11.55 2 11V6c0-1.11.89-2 2-2h5c.55 0 1.05.22 1.41.58l7 7m-3.87-5.87 1-1 6.87 6.87c.37.36.59.87.59 1.42 0 .55-.22 1.05-.58 1.41l-5.38 5.38-1-1L20.75 13l-7.21-7.29z/>/svg>a classtag href/tags/rust data-astro-cid-w5rua66a>rust/a>a classtag href/tags/wasm data-astro-cid-w5rua66a>wasm/a>a classtag href/tags/demoscene data-astro-cid-w5rua66a>demoscene/a>/div>a classabstract href/rust-wasm-demo-effects/ data-astro-cid-j7pv25f6>I needed a reason to play with rust+wasm, and I have always loved the demoscene and its cleverness. I also wanted the result to be embeddable here on my blog made with Astro. Guess who’s about to fill buffers with fire, plasma, stars and roads.../a>/div>div classpost-preview data-astro-cid-j7pv25f6>h1 data-astro-cid-j7pv25f6>a href/doom-maps-laser-cut/ data-astro-cid-j7pv25f6>DOOM maps to SVG to laser cutter/a>/h1>img src/_astro/banner.f008b8a1.webp altDOOM maps to SVG to laser cutter data-astro-cid-j7pv25f6>div classmetadata data-astro-cid-w5rua66a>svg viewBox0 0 24 24 data-astro-cid-w5rua66a astro-iconmdi:calendar>path fillcurrentColor dM19 19H5V8h14m-3-7v2H8V1H6v2H5c-1.11 0-2 .89-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2h-1V1m-1 11h-5v5h5v-5z/>/svg>time datetime2023-03-11T14:56:22.000Z>3/11/2023/time>span classsep data-astro-cid-w5rua66a> | /span>svg viewBox-3 -3 25 25 data-astro-cid-w5rua66a astro-iconmdi:clock>path fillcurrentColor dM12 2A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2m4.2 14.2L11 13V7h1.5v5.2l4.5 2.7-.8 1.3z/>/svg>6 minspan classsep data-astro-cid-w5rua66a> | /span>svg viewBox-3 -3 25 25 data-astro-cid-w5rua66a astro-iconmdi:tags>path fillcurrentColor dM5.5 9A1.5 1.5 0 0 0 7 7.5 1.5 1.5 0 0 0 5.5 6 1.5 1.5 0 0 0 4 7.5 1.5 1.5 0 0 0 5.5 9m11.91 2.58c.36.36.59.86.59 1.42 0 .55-.22 1.05-.59 1.41l-5 5a1.996 1.996 0 0 1-2.83 0l-6.99-6.99C2.22 12.05 2 11.55 2 11V6c0-1.11.89-2 2-2h5c.55 0 1.05.22 1.41.58l7 7m-3.87-5.87 1-1 6.87 6.87c.37.36.59.87.59 1.42 0 .55-.22 1.05-.58 1.41l-5.38 5.38-1-1L20.75 13l-7.21-7.29z/>/svg>a classtag href/tags/doom data-astro-cid-w5rua66a>doom/a>a classtag href/tags/rust data-astro-cid-w5rua66a>rust/a>/div>a classabstract href/doom-maps-laser-cut/ data-astro-cid-j7pv25f6>I’ve heard a lot about classic Doom’s data format and decided to write some Rust code to extract its maps and convert that to vector graphics I could laser cut.../a>/div>div classpost-preview data-astro-cid-j7pv25f6>h1 data-astro-cid-j7pv25f6>a href/esp32-love-notes-demoscene/ data-astro-cid-j7pv25f6>ESP32: leaving love notes and entering demoscene territory/a>/h1>img src/_astro/banner.1a01109f.jpg altESP32: leaving love notes and entering demoscene territory data-astro-cid-j7pv25f6>div classmetadata data-astro-cid-w5rua66a>svg viewBox0 0 24 24 data-astro-cid-w5rua66a astro-iconmdi:calendar>path fillcurrentColor dM19 19H5V8h14m-3-7v2H8V1H6v2H5c-1.11 0-2 .89-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2h-1V1m-1 11h-5v5h5v-5z/>/svg>time datetime2022-08-30T14:09:02.000Z>8/30/2022/time>span classsep data-astro-cid-w5rua66a> | /span>svg viewBox-3 -3 25 25 data-astro-cid-w5rua66a astro-iconmdi:clock>path fillcurrentColor dM12 2A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2m4.2 14.2L11 13V7h1.5v5.2l4.5 2.7-.8 1.3z/>/svg>6 minspan classsep data-astro-cid-w5rua66a> | /span>svg viewBox-3 -3 25 25 data-astro-cid-w5rua66a astro-iconmdi:tags>path fillcurrentColor dM5.5 9A1.5 1.5 0 0 0 7 7.5 1.5 1.5 0 0 0 5.5 6 1.5 1.5 0 0 0 4 7.5 1.5 1.5 0 0 0 5.5 9m11.91 2.58c.36.36.59.86.59 1.42 0 .55-.22 1.05-.59 1.41l-5 5a1.996 1.996 0 0 1-2.83 0l-6.99-6.99C2.22 12.05 2 11.55 2 11V6c0-1.11.89-2 2-2h5c.55 0 1.05.22 1.41.58l7 7m-3.87-5.87 1-1 6.87 6.87c.37.36.59.87.59 1.42 0 .55-.22 1.05-.58 1.41l-5.38 5.38-1-1L20.75 13l-7.21-7.29z/>/svg>a classtag href/tags/esp32 data-astro-cid-w5rua66a>esp32/a>a classtag href/tags/gnu-rocket data-astro-cid-w5rua66a>gnu-rocket/a>/div>a classabstract href/esp32-love-notes-demoscene/ data-astro-cid-j7pv25f6>I’ve been tinkering with arduino-like platforms recently (more on the midi synth soon) and got the idea to make a small message board to leave notes to my girlfriend. This is how I ended up with a simulator, an integration with a demoscene tracker, custom tools to make palette cycling effects, having to learn CAD to make a laser-cut front panel and more.../a>/div>div classpost-preview data-astro-cid-j7pv25f6>h1 data-astro-cid-j7pv25f6>a href/unicode-graphs/ data-astro-cid-j7pv25f6>A visual graph editor to output ASCII art/a>/h1>video loop muted autoplay src/_astro/demo.9668e3e6.mp4 data-astro-cid-j7pv25f6>/video>div classmetadata data-astro-cid-w5rua66a>svg viewBox0 0 24 24 data-astro-cid-w5rua66a astro-iconmdi:calendar>path fillcurrentColor dM19 19H5V8h14m-3-7v2H8V1H6v2H5c-1.11 0-2 .89-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2h-1V1m-1 11h-5v5h5v-5z/>/svg>time datetime2022-01-11T01:09:02.000Z>1/11/2022/time>span classsep data-astro-cid-w5rua66a> | /span>svg viewBox-3 -3 25 25 data-astro-cid-w5rua66a astro-iconmdi:clock>path fillcurrentColor dM12 2A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2m4.2 14.2L11 13V7h1.5v5.2l4.5 2.7-.8 1.3z/>/svg>9 minspan classsep data-astro-cid-w5rua66a> | /span>svg viewBox-3 -3 25 25 data-astro-cid-w5rua66a astro-iconmdi:tags>path fillcurrentColor dM5.5 9A1.5 1.5 0 0 0 7 7.5 1.5 1.5 0 0 0 5.5 6 1.5 1.5 0 0 0 4 7.5 1.5 1.5 0 0 0 5.5 9m11.91 2.58c.36.36.59.86.59 1.42 0 .55-.22 1.05-.59 1.41l-5 5a1.996 1.996 0 0 1-2.83 0l-6.99-6.99C2.22 12.05 2 11.55 2 11V6c0-1.11.89-2 2-2h5c.55 0 1.05.22 1.41.58l7 7m-3.87-5.87 1-1 6.87 6.87c.37.36.59.87.59 1.42 0 .55-.22 1.05-.58 1.41l-5.38 5.38-1-1L20.75 13l-7.21-7.29z/>/svg>a classtag href/tags/fsharp data-astro-cid-w5rua66a>fsharp/a>/div>a classabstract href/unicode-graphs/ data-astro-cid-j7pv25f6>At work, I used to write a lot of unit tests that would create a graph, then act on it. A bit of ASCII art can go a long way to quickly get the point of the graph ; I eventually got bored by drawing them by hand and wrote a visual tool to do it: https://unicode-graphs. netlify. app/../a>/div>div classpost-preview data-astro-cid-j7pv25f6>h1 data-astro-cid-j7pv25f6>a href/burst-expressions/ data-astro-cid-j7pv25f6>Fast expression evaluation with burst in Unity/a>/h1>video loop muted autoplay src/_astro/header-1.16873d07.m4v data-astro-cid-j7pv25f6>/video>div classmetadata data-astro-cid-w5rua66a>svg viewBox0 0 24 24 data-astro-cid-w5rua66a astro-iconmdi:calendar>path fillcurrentColor dM19 19H5V8h14m-3-7v2H8V1H6v2H5c-1.11 0-2 .89-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2h-1V1m-1 11h-5v5h5v-5z/>/svg>time datetime2021-07-16T14:56:22.000Z>7/16/2021/time>span classsep data-astro-cid-w5rua66a> | /span>svg viewBox-3 -3 25 25 data-astro-cid-w5rua66a astro-iconmdi:clock>path fillcurrentColor dM12 2A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2m4.2 14.2L11 13V7h1.5v5.2l4.5 2.7-.8 1.3z/>/svg>7 minspan classsep data-astro-cid-w5rua66a> | /span>svg viewBox-3 -3 25 25 data-astro-cid-w5rua66a astro-iconmdi:tags>path fillcurrentColor dM5.5 9A1.5 1.5 0 0 0 7 7.5 1.5 1.5 0 0 0 5.5 6 1.5 1.5 0 0 0 4 7.5 1.5 1.5 0 0 0 5.5 9m11.91 2.58c.36.36.59.86.59 1.42 0 .55-.22 1.05-.59 1.41l-5 5a1.996 1.996 0 0 1-2.83 0l-6.99-6.99C2.22 12.05 2 11.55 2 11V6c0-1.11.89-2 2-2h5c.55 0 1.05.22 1.41.58l7 7m-3.87-5.87 1-1 6.87 6.87c.37.36.59.87.59 1.42 0 .55-.22 1.05-.58 1.41l-5.38 5.38-1-1L20.75 13l-7.21-7.29z/>/svg>a classtag href/tags/burst data-astro-cid-w5rua66a>burst/a>a classtag href/tags/unity data-astro-cid-w5rua66a>unity/a>/div>a classabstract href/burst-expressions/ data-astro-cid-j7pv25f6>I recently implemented the famous Marching Cubes algorithm (Wikipedia) using density function to describe the terrain (GPU Gems chapter about that). Having to recompile the code to tweak the density function was too slow, so I wrote a fast expression evaluator for Unity, available on GitHub.../a>/div>div classpost-preview data-astro-cid-j7pv25f6>h1 data-astro-cid-j7pv25f6>a href/dots-burst-satisfactory-belts/ data-astro-cid-j7pv25f6>Implementing Conveyor Belts à la Satisfactory with DOTS in Unity/a>/h1>video loop muted autoplay src/_astro/Loop-1.a2a0eeef.webm data-astro-cid-j7pv25f6>/video>div classmetadata data-astro-cid-w5rua66a>svg viewBox0 0 24 24 data-astro-cid-w5rua66a astro-iconmdi:calendar>path fillcurrentColor dM19 19H5V8h14m-3-7v2H8V1H6v2H5c-1.11 0-2 .89-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2h-1V1m-1 11h-5v5h5v-5z/>/svg>time datetime2021-04-06T14:09:02.000Z>4/6/2021/time>span classsep data-astro-cid-w5rua66a> | /span>svg viewBox-3 -3 25 25 data-astro-cid-w5rua66a astro-iconmdi:clock>path fillcurrentColor dM12 2A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2m4.2 14.2L11 13V7h1.5v5.2l4.5 2.7-.8 1.3z/>/svg>16 minspan classsep data-astro-cid-w5rua66a> | /span>svg viewBox-3 -3 25 25 data-astro-cid-w5rua66a astro-iconmdi:tags>path fillcurrentColor dM5.5 9A1.5 1.5 0 0 0 7 7.5 1.5 1.5 0 0 0 5.5 6 1.5 1.5 0 0 0 4 7.5 1.5 1.5 0 0 0 5.5 9m11.91 2.58c.36.36.59.86.59 1.42 0 .55-.22 1.05-.59 1.41l-5 5a1.996 1.996 0 0 1-2.83 0l-6.99-6.99C2.22 12.05 2 11.55 2 11V6c0-1.11.89-2 2-2h5c.55 0 1.05.22 1.41.58l7 7m-3.87-5.87 1-1 6.87 6.87c.37.36.59.87.59 1.42 0 .55-.22 1.05-.58 1.41l-5.38 5.38-1-1L20.75 13l-7.21-7.29z/>/svg>a classtag href/tags/dots data-astro-cid-w5rua66a>dots/a>a classtag href/tags/burst data-astro-cid-w5rua66a>burst/a>/div>a classabstract href/dots-burst-satisfactory-belts/ data-astro-cid-j7pv25f6>I was curious to see if I could implement belts like in Satisfactory or Factorio with DOTS in a performant manner. In the end, my implementation is highly parallel and works at 60fps for a million items, but let’s start with a deep dive into how both games do it.../a>/div>div classpost-preview data-astro-cid-j7pv25f6>h1 data-astro-cid-j7pv25f6>a href/mapgen/delaunay-triangulation-triangle-storage/ data-astro-cid-j7pv25f6>Delaunay Triangulation and Triangle Storage/a>/h1>img src/_astro/Delaunay1000.76519834.png altDelaunay Triangulation and Triangle Storage data-astro-cid-j7pv25f6>div classmetadata data-astro-cid-w5rua66a>svg viewBox0 0 24 24 data-astro-cid-w5rua66a astro-iconmdi:calendar>path fillcurrentColor dM19 19H5V8h14m-3-7v2H8V1H6v2H5c-1.11 0-2 .89-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2h-1V1m-1 11h-5v5h5v-5z/>/svg>time datetime2021-03-11T05:25:28.000Z>3/11/2021/time>span classsep data-astro-cid-w5rua66a> | /span>svg viewBox-3 -3 25 25 data-astro-cid-w5rua66a astro-iconmdi:clock>path fillcurrentColor dM12 2A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2m4.2 14.2L11 13V7h1.5v5.2l4.5 2.7-.8 1.3z/>/svg>30 minspan classsep data-astro-cid-w5rua66a> | /span>svg viewBox-3 -3 25 25 data-astro-cid-w5rua66a astro-iconmdi:tags>path fillcurrentColor dM5.5 9A1.5 1.5 0 0 0 7 7.5 1.5 1.5 0 0 0 5.5 6 1.5 1.5 0 0 0 4 7.5 1.5 1.5 0 0 0 5.5 9m11.91 2.58c.36.36.59.86.59 1.42 0 .55-.22 1.05-.59 1.41l-5 5a1.996 1.996 0 0 1-2.83 0l-6.99-6.99C2.22 12.05 2 11.55 2 11V6c0-1.11.89-2 2-2h5c.55 0 1.05.22 1.41.58l7 7m-3.87-5.87 1-1 6.87 6.87c.37.36.59.87.59 1.42 0 .55-.22 1.05-.58 1.41l-5.38 5.38-1-1L20.75 13l-7.21-7.29z/>/svg>a classtag href/tags/procedural generation data-astro-cid-w5rua66a>procedural generation/a>a classtag href/tags/unity data-astro-cid-w5rua66a>unity/a>a classtag href/tags/burst data-astro-cid-w5rua66a>burst/a>/div>a classabstract href/mapgen/delaunay-triangulation-triangle-storage/ data-astro-cid-j7pv25f6>In the last part, we ended up with a collection of random 2D points. Now it’s time to triangulate them. After an overview of what a Delaunay triangulation is, we’ll describe the Bowyer-Watson algorithm and write a custom data structure to store the triangles, then we’ll generate a mesh from it.../a>/div>div classpost-preview data-astro-cid-j7pv25f6>h1 data-astro-cid-j7pv25f6>a href/mapgen/random-2d-points/ data-astro-cid-j7pv25f6>Random 2D Points/a>/h1>img src/_astro/_HaltonColors.aaefe6e7.png altRandom 2D Points data-astro-cid-j7pv25f6>div classmetadata data-astro-cid-w5rua66a>svg viewBox0 0 24 24 data-astro-cid-w5rua66a astro-iconmdi:calendar>path fillcurrentColor dM19 19H5V8h14m-3-7v2H8V1H6v2H5c-1.11 0-2 .89-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2h-1V1m-1 11h-5v5h5v-5z/>/svg>time datetime2021-03-08T06:19:40.000Z>3/8/2021/time>span classsep data-astro-cid-w5rua66a> | /span>svg viewBox-3 -3 25 25 data-astro-cid-w5rua66a astro-iconmdi:clock>path fillcurrentColor dM12 2A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2m4.2 14.2L11 13V7h1.5v5.2l4.5 2.7-.8 1.3z/>/svg>7 minspan classsep data-astro-cid-w5rua66a> | /span>svg viewBox-3 -3 25 25 data-astro-cid-w5rua66a astro-iconmdi:tags>path fillcurrentColor dM5.5 9A1.5 1.5 0 0 0 7 7.5 1.5 1.5 0 0 0 5.5 6 1.5 1.5 0 0 0 4 7.5 1.5 1.5 0 0 0 5.5 9m11.91 2.58c.36.36.59.86.59 1.42 0 .55-.22 1.05-.59 1.41l-5 5a1.996 1.996 0 0 1-2.83 0l-6.99-6.99C2.22 12.05 2 11.55 2 11V6c0-1.11.89-2 2-2h5c.55 0 1.05.22 1.41.58l7 7m-3.87-5.87 1-1 6.87 6.87c.37.36.59.87.59 1.42 0 .55-.22 1.05-.58 1.41l-5.38 5.38-1-1L20.75 13l-7.21-7.29z/>/svg>a classtag href/tags/procgen data-astro-cid-w5rua66a>procgen/a>a classtag href/tags/unity data-astro-cid-w5rua66a>unity/a>a classtag href/tags/burst data-astro-cid-w5rua66a>burst/a>/div>a classabstract href/mapgen/random-2d-points/ data-astro-cid-j7pv25f6>We’ll start by generating the random points we’ll triangulate later and benchmark that, but first, we need a bit of boilerplate :../a>/div>div classpost-preview data-astro-cid-j7pv25f6>h1 data-astro-cid-j7pv25f6>a href/mapgen/intro/ data-astro-cid-j7pv25f6>Map Generation: Introduction/a>/h1>div classmetadata data-astro-cid-w5rua66a>svg viewBox0 0 24 24 data-astro-cid-w5rua66a astro-iconmdi:calendar>path fillcurrentColor dM19 19H5V8h14m-3-7v2H8V1H6v2H5c-1.11 0-2 .89-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2h-1V1m-1 11h-5v5h5v-5z/>/svg>time datetime2021-03-08T06:19:39.000Z>3/8/2021/time>span classsep data-astro-cid-w5rua66a> | /span>svg viewBox-3 -3 25 25 data-astro-cid-w5rua66a astro-iconmdi:clock>path fillcurrentColor dM12 2A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2m4.2 14.2L11 13V7h1.5v5.2l4.5 2.7-.8 1.3z/>/svg>1 minspan classsep data-astro-cid-w5rua66a> | /span>svg viewBox-3 -3 25 25 data-astro-cid-w5rua66a astro-iconmdi:tags>path fillcurrentColor dM5.5 9A1.5 1.5 0 0 0 7 7.5 1.5 1.5 0 0 0 5.5 6 1.5 1.5 0 0 0 4 7.5 1.5 1.5 0 0 0 5.5 9m11.91 2.58c.36.36.59.86.59 1.42 0 .55-.22 1.05-.59 1.41l-5 5a1.996 1.996 0 0 1-2.83 0l-6.99-6.99C2.22 12.05 2 11.55 2 11V6c0-1.11.89-2 2-2h5c.55 0 1.05.22 1.41.58l7 7m-3.87-5.87 1-1 6.87 6.87c.37.36.59.87.59 1.42 0 .55-.22 1.05-.58 1.41l-5.38 5.38-1-1L20.75 13l-7.21-7.29z/>/svg>a classtag href/tags/procedural generation data-astro-cid-w5rua66a>procedural generation/a>a classtag href/tags/unity data-astro-cid-w5rua66a>unity/a>a classtag href/tags/burst data-astro-cid-w5rua66a>burst/a>/div>a classabstract href/mapgen/intro/ data-astro-cid-j7pv25f6>I always loved procedural generation, and was really impressed by mewo2’s fantasy maps. I decided to give it a try using Unity and the Burst Compiler, an amazing piece of tech developed at Unity. It was also the opportunity to dig into SVG and implement a few algorithms and white papers: Delaunay’s triangulation, a depression filling algorithm, a cartographic labeling algorithm based on simulated annealing, water network computation and a few others. I’ll write a (probably long) series of articles detailing the interesting parts and algorithms of the project and my general process to approach this kind of topic.../a>/div>div classpost-preview data-astro-cid-j7pv25f6>h1 data-astro-cid-j7pv25f6>a href/tech-stack-graph-unicode-fsharp/ data-astro-cid-j7pv25f6>Choosing a language to replace Javascript (and why it's F#)/a>/h1>div classmetadata data-astro-cid-w5rua66a>svg viewBox0 0 24 24 data-astro-cid-w5rua66a astro-iconmdi:calendar>path fillcurrentColor dM19 19H5V8h14m-3-7v2H8V1H6v2H5c-1.11 0-2 .89-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2h-1V1m-1 11h-5v5h5v-5z/>/svg>time datetime2021-03-07T16:44:02.000Z>3/7/2021/time>span classsep data-astro-cid-w5rua66a> | /span>svg viewBox-3 -3 25 25 data-astro-cid-w5rua66a astro-iconmdi:clock>path fillcurrentColor dM12 2A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2m4.2 14.2L11 13V7h1.5v5.2l4.5 2.7-.8 1.3z/>/svg>4 minspan classsep data-astro-cid-w5rua66a> | /span>svg viewBox-3 -3 25 25 data-astro-cid-w5rua66a astro-iconmdi:tags>path fillcurrentColor dM5.5 9A1.5 1.5 0 0 0 7 7.5 1.5 1.5 0 0 0 5.5 6 1.5 1.5 0 0 0 4 7.5 1.5 1.5 0 0 0 5.5 9m11.91 2.58c.36.36.59.86.59 1.42 0 .55-.22 1.05-.59 1.41l-5 5a1.996 1.996 0 0 1-2.83 0l-6.99-6.99C2.22 12.05 2 11.55 2 11V6c0-1.11.89-2 2-2h5c.55 0 1.05.22 1.41.58l7 7m-3.87-5.87 1-1 6.87 6.87c.37.36.59.87.59 1.42 0 .55-.22 1.05-.58 1.41l-5.38 5.38-1-1L20.75 13l-7.21-7.29z/>/svg>a classtag href/tags/fsharp data-astro-cid-w5rua66a>fsharp/a>a classtag href/tags/elm data-astro-cid-w5rua66a>elm/a>a classtag href/tags/js data-astro-cid-w5rua66a>js/a>/div>a classabstract href/tech-stack-graph-unicode-fsharp/ data-astro-cid-j7pv25f6>This is an opinion piece. YMMVOnce in a while, I start a side project whose ideal format is a website. This article is about how I eventually settled on F# and Fable.../a>/div>/section>/main>footer data-astro-cid-sz7xmlte>© 2023 theor. All rights reserved./footer>/body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]