<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://peertube.spaceships.me/about/instance/home</loc></url><url><loc>https://peertube.spaceships.me/videos/browse?scope=local</loc></url><url><loc>https://peertube.spaceships.me/w/67s2uHbcKVm2eTPh7p8u8f</loc><video:video><video:thumbnail_loc>https://peertube.spaceships.me/lazy-static/thumbnails/511a3a46-eb20-4d10-9c7a-9aa91ac75b41.jpg</video:thumbnail_loc><video:title>Travelling through space</video:title><video:description>Procedurally generated video of stars and clouds moving using a parallax effect.

This video actually consists of multiple pieces of procedurally generated art combined together. These individual parts are the star and cloud textures, the code that animates them and the Bézier curve gradients that add colour.

I created this art as a part of [Spaceships](https://spaceships.me/), a free/libre video game that I created. The game and this art are created in the Rust programming language and using the [glium](https://crates.io/crates/glium) crate for rendering the video (this is a safe abstraction to OpenGL).

Each individual star texture is generated from four glowing lines that intersect the centre of the texture. I was inspired by [GIMP's sparkle plugin](https://docs.gimp.org/3.0/en/plug-in-sparkle.html) on individual pixels when making this.

The clouds are generated using Perlin noise in a similar way to how [this article](https://wwwtyro.net/2016/10/22/2D-space-scene-procgen.html) generates them. The video uses three cloud images layered on top of each other.

The larger game that this is part of is 2D, but the sky background is 3D, with each individual star and cloud image having a z coordinate that gives a parallax effect when the camera moves.

What I have described so far would only generate a greyscale video. For the clouds, what adds colour are two Bézier curve gradients. Each of the two colour channels in each cloud image is treated as input to the Bézier curve which outputs an RGB colour. Once the clouds are rendered, the stars are rendered on top and coloured based on the colour of the generated clouds right under it.

Here are the source files that are used to generate this video. These only provide a partial picture as they depend on many other source files, but if you want to get an understanding of how the code works, these are a good place to start exploring.
1. Star texture generation code: &lt;https://codeberg.org/rustydev/spaceships...</video:description><video:content_loc>https://peertube.spaceships.me/static/streaming-playlists/hls/296431e3-463d-4688-9c06-87656a54c15c/b00fe9fb-ee6e-40a9-afab-c5d32a719f15-master.m3u8</video:content_loc><video:player_loc>https://peertube.spaceships.me/videos/embed/67s2uHbcKVm2eTPh7p8u8f</video:player_loc><video:duration>240</video:duration><video:rating>0</video:rating><video:view_count>23</video:view_count><video:publication_date>2025-03-24T09:38:03.022Z</video:publication_date><video:tag>spaceships</video:tag><video:tag>game</video:tag><video:tag>art</video:tag><video:tag>space</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://peertube.spaceships.me/c/game/videos">Game</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://peertube.spaceships.me/w/uVR4kbBvQCNj8jarfjJ41Y</loc><video:video><video:thumbnail_loc>https://peertube.spaceships.me/lazy-static/thumbnails/7561bd08-54b3-44b0-9d8e-941906dfb356.jpg</video:thumbnail_loc><video:title>Forcefield graphics improvements</video:title><video:description>This is a preview of the upcoming release of [Spaceships](https://spaceships.me/) v1.3.2 which will include a huge improvement to the forcefield's graphics as shown in this video. Previously the forcefield was just a blue radial gradient with opacity decreasing further from the centre.</video:description><video:content_loc>https://peertube.spaceships.me/static/streaming-playlists/hls/ea4488f5-f4dd-48e2-9829-8fbf4c0066d4/e30b804e-6cfc-4eb3-8124-9686c43905c4-master.m3u8</video:content_loc><video:player_loc>https://peertube.spaceships.me/videos/embed/uVR4kbBvQCNj8jarfjJ41Y</video:player_loc><video:duration>44</video:duration><video:rating>0</video:rating><video:view_count>4</video:view_count><video:publication_date>2025-04-03T07:59:04.517Z</video:publication_date><video:tag>spaceships</video:tag><video:tag>game</video:tag><video:tag>forcefield</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://peertube.spaceships.me/c/game/videos">Game</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://peertube.spaceships.me/w/sTE8zGQYYcnGrU6BY1xj5i</loc><video:video><video:thumbnail_loc>https://peertube.spaceships.me/lazy-static/thumbnails/770865e9-2f54-44d1-9cab-7d268fed4403.jpg</video:thumbnail_loc><video:title>Spaceships v1.3.2 release</video:title><video:description>See the blog post [here on Lemmy](https://lemmy.spaceships.me/post/21495).</video:description><video:content_loc>https://peertube.spaceships.me/static/streaming-playlists/hls/d9c4094b-de39-4944-b219-be61c2d0b899/1f79e95c-6094-4b80-8ec5-268168dbd47f-master.m3u8</video:content_loc><video:player_loc>https://peertube.spaceships.me/videos/embed/sTE8zGQYYcnGrU6BY1xj5i</video:player_loc><video:duration>68</video:duration><video:rating>0</video:rating><video:view_count>5</video:view_count><video:publication_date>2025-04-05T08:13:35.743Z</video:publication_date><video:tag>spaceships</video:tag><video:tag>game</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://peertube.spaceships.me/c/game/videos">Game</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://peertube.spaceships.me/w/rGECjhHHWCPbuwinPLC4HW</loc><video:video><video:thumbnail_loc>https://peertube.spaceships.me/lazy-static/thumbnails/913d1d26-e0d3-486c-9702-3fe9bf6e6319.jpg</video:thumbnail_loc><video:title>Spaceships v1.3.3 release</video:title><video:description>See the blog post about this release [here on Lemmy](https://lemmy.spaceships.me/post/26817).</video:description><video:content_loc>https://peertube.spaceships.me/static/streaming-playlists/hls/d0220580-be62-46e4-b470-28d93296216c/58b9d3ea-ea27-4fc1-af15-460667dbd3ff-master.m3u8</video:content_loc><video:player_loc>https://peertube.spaceships.me/videos/embed/rGECjhHHWCPbuwinPLC4HW</video:player_loc><video:duration>142</video:duration><video:rating>0</video:rating><video:view_count>3</video:view_count><video:publication_date>2025-04-22T11:02:38.019Z</video:publication_date><video:tag>spaceships</video:tag><video:tag>game</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://peertube.spaceships.me/c/game/videos">Game</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://peertube.spaceships.me/w/6srFZtkvwdhmTvePn3xmag</loc><video:video><video:thumbnail_loc>https://peertube.spaceships.me/lazy-static/thumbnails/ec973021-0a2a-4da3-bac5-2bc3ccfa05eb.jpg</video:thumbnail_loc><video:title>Spaceships v1.4.0 release</video:title><video:description>See the blog post about this release [here on Lemmy](https://lemmy.spaceships.me/post/30387).</video:description><video:content_loc>https://peertube.spaceships.me/static/streaming-playlists/hls/2c2edcef-e6bb-4443-ab47-2d0aef1edd41/f66d839a-db5f-4b75-bc04-1dd2ab397213-master.m3u8</video:content_loc><video:player_loc>https://peertube.spaceships.me/videos/embed/6srFZtkvwdhmTvePn3xmag</video:player_loc><video:duration>115</video:duration><video:rating>0</video:rating><video:view_count>4</video:view_count><video:publication_date>2025-05-04T09:51:03.884Z</video:publication_date><video:tag>game</video:tag><video:tag>spaceships</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://peertube.spaceships.me/c/game/videos">Game</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://peertube.spaceships.me/w/jL57tq5RNqMs4CxoLjJAzT</loc><video:video><video:thumbnail_loc>https://peertube.spaceships.me/lazy-static/thumbnails/18dd3d56-b9cf-45ea-b368-370c25def8a6.jpg</video:thumbnail_loc><video:title>Spaceships v1.4.1 release</video:title><video:description>See the blog post about this release [here on Lemmy](https://lemmy.spaceships.me/post/36951).

Originally posted on 19 June but reuploaded because of [problems](https://lemmy.spaceships.me/post/36941).</video:description><video:content_loc>https://peertube.spaceships.me/static/streaming-playlists/hls/97ebc170-71c4-4fc3-92d2-8dd4fb5b64a5/759d29e7-d0da-41d8-ab83-c2cf01658a59-master.m3u8</video:content_loc><video:player_loc>https://peertube.spaceships.me/videos/embed/jL57tq5RNqMs4CxoLjJAzT</video:player_loc><video:duration>135</video:duration><video:rating>0</video:rating><video:view_count>1</video:view_count><video:publication_date>2025-09-14T05:38:30.852Z</video:publication_date><video:tag>game</video:tag><video:tag>spaceships</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://peertube.spaceships.me/c/game/videos">Game</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://peertube.spaceships.me/w/jJBvcFCjkrxjbKSaNjr97e</loc><video:video><video:thumbnail_loc>https://peertube.spaceships.me/lazy-static/thumbnails/cd98b0e4-c456-41d4-af45-38a90f93eca3.jpg</video:thumbnail_loc><video:title>Spaceships v1.4.2 release</video:title><video:description>See the blog post about this release [here on Lemmy](https://lemmy.spaceships.me/post/36955).

Originally posted on 3 July but reuploaded because of [problems](https://lemmy.spaceships.me/post/36941).</video:description><video:content_loc>https://peertube.spaceships.me/static/streaming-playlists/hls/97b79d2f-eb69-4ce7-8d47-100204f76a91/2e925a53-0b8e-404c-8301-49700d61cb92-master.m3u8</video:content_loc><video:player_loc>https://peertube.spaceships.me/videos/embed/jJBvcFCjkrxjbKSaNjr97e</video:player_loc><video:duration>124</video:duration><video:rating>0</video:rating><video:view_count>2</video:view_count><video:publication_date>2025-09-14T05:49:51.487Z</video:publication_date><video:tag>game</video:tag><video:tag>spaceships</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://peertube.spaceships.me/c/game/videos">Game</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://peertube.spaceships.me/w/8ccjn3vFJS9WfyH84qdowY</loc><video:video><video:thumbnail_loc>https://peertube.spaceships.me/lazy-static/thumbnails/e30e72ca-d5e4-4687-8b8e-e8b626e145af.jpg</video:thumbnail_loc><video:title>When you create an "AI" that's better than you at your own game</video:title><video:description>I have started development of v1.5.0 of Spaceships which will mainly focus on bot players, which will enable a functional singleplayer. Calling these bot players “AI” overstates the complexity of these bots and unfairly associates them with modern day AI slop. These bot players move towards a target player following a path generated using [weighted A*](https://en.wikipedia.org/wiki/A*_search_algorithm#Bounded_relaxation) and shoot using a simple algorithm.

Originally posted on 25 August but reuploaded because of [problems](https://lemmy.spaceships.me/post/36941).</video:description><video:content_loc>https://peertube.spaceships.me/static/streaming-playlists/hls/3a40204e-2910-4d9e-b783-0f4bf4875a9c/9bc72de6-da5b-444d-a6e4-6ba968254253-master.m3u8</video:content_loc><video:player_loc>https://peertube.spaceships.me/videos/embed/8ccjn3vFJS9WfyH84qdowY</video:player_loc><video:duration>284</video:duration><video:rating>0</video:rating><video:view_count>21</video:view_count><video:publication_date>2025-09-14T06:10:58.826Z</video:publication_date><video:tag>game</video:tag><video:tag>spaceships</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://peertube.spaceships.me/c/game/videos">Game</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://peertube.spaceships.me/w/3kTAbgKnubZWNRB4vMRywq</loc><video:video><video:thumbnail_loc>https://peertube.spaceships.me/lazy-static/thumbnails/1e080389-993b-483f-a66b-44930d81bc0f.jpg</video:thumbnail_loc><video:title>Checkpoints and basic level functionality for the upcoming v1.5.0 release</video:title><video:description>Today I have finished implementing checkpoints in Spaceships which will be part of a larger level system that I am currently working on.</video:description><video:content_loc>https://peertube.spaceships.me/static/streaming-playlists/hls/12f933b3-bb4a-46ce-ac73-999ce289eb3c/bfaed35b-abfd-4c60-81e8-81f0de4fa3c6-master.m3u8</video:content_loc><video:player_loc>https://peertube.spaceships.me/videos/embed/3kTAbgKnubZWNRB4vMRywq</video:player_loc><video:duration>85</video:duration><video:rating>0</video:rating><video:view_count>3</video:view_count><video:publication_date>2025-11-08T07:46:07.652Z</video:publication_date><video:tag>spaceships</video:tag><video:tag>game</video:tag><video:tag>checkpoint</video:tag><video:tag>level</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://peertube.spaceships.me/c/game/videos">Game</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://peertube.spaceships.me/w/arA1NfdS9iF48rGMQNBRGt</loc><video:video><video:thumbnail_loc>https://peertube.spaceships.me/lazy-static/thumbnails/9a35d1bc-b271-4ebd-9a1b-699a61c1bf45.jpg</video:thumbnail_loc><video:title>Spaceships v1.5.0 release</video:title><video:description>See the blog post about this release [here on Lemmy](https://lemmy.spaceships.me/post/69892).</video:description><video:content_loc>https://peertube.spaceships.me/static/streaming-playlists/hls/4c74cdcc-ce0e-422a-abf2-bb3f3e8be7a7/99ec58b9-382a-41ac-83b4-e48e43931d68-master.m3u8</video:content_loc><video:player_loc>https://peertube.spaceships.me/videos/embed/arA1NfdS9iF48rGMQNBRGt</video:player_loc><video:duration>89</video:duration><video:rating>0</video:rating><video:view_count>6</video:view_count><video:publication_date>2025-12-12T10:37:52.619Z</video:publication_date><video:tag>game</video:tag><video:tag>spaceships</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://peertube.spaceships.me/c/game/videos">Game</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://peertube.spaceships.me/w/782BNda6dNqYXYPEfXZW82</loc><video:video><video:thumbnail_loc>https://peertube.spaceships.me/lazy-static/thumbnails/ea862bc4-00a4-4381-ad79-8bd395a977a7.jpg</video:thumbnail_loc><video:title>Spaceships level completion and transition to the next level</video:title><video:description>Preview of the upcoming v1.5.1 release.</video:description><video:content_loc>https://peertube.spaceships.me/static/streaming-playlists/hls/319208f4-26ef-4185-be0a-18e6598ec047/c9a5c64f-9dd4-4cec-96a4-314f9614037b-master.m3u8</video:content_loc><video:player_loc>https://peertube.spaceships.me/videos/embed/782BNda6dNqYXYPEfXZW82</video:player_loc><video:duration>12</video:duration><video:rating>0</video:rating><video:view_count>1</video:view_count><video:publication_date>2026-04-06T04:29:36.830Z</video:publication_date><video:tag>game</video:tag><video:tag>spaceships</video:tag><video:tag>level</video:tag><video:family_friendly>YES</video:family_friendly><video:uploader info="https://peertube.spaceships.me/c/game/videos">Game</video:uploader><video:live>NO</video:live></video:video></url><url><loc>https://peertube.spaceships.me/c/game/videos</loc></url><url><loc>https://peertube.spaceships.me/a/rustydev/video-channels</loc></url></urlset>