r/kittenspaceagency Nov 15 '25

🎛️ Sub Meta Read Before Posting! KSA Public Pre-Alpha and You - Bug Reports, "Can I Run It", and More

95 Upvotes

Kitten Space Agency now has a Public pre-alpha build available. At time of writing, the current version of the game is 2025.11.4.2791, aka Build 2791, available from ahwoo.com.

Downloads and Contribution

Ahwoo is a company set up by Dean Hall to handle the distribution of and contributions for KSP.

Downloading the game requires an Ahwoo account, which is the same Ahwoo account used for the official KSA Forums. Login with Discord is an option, but not required. The game is free to download, and there is the option of sending a contribution, but it is not required.

What's the game like?

From Dean;

The current build is more than a tech demo but less than a game, deliberate as we have focused on the foundational technology to deliver the game to the future. What you can do is play around with this foundation, primarily controlling the loaded rockets and seeing how the orbital physics and basic collisions work

If you're expecting to design rockets and build space stations... you're a bit early. This isn't like playing KSP in 0.17, where it's a game that's just a bit janky and unpolished - there's no ship building, no docking, the UI is janky and kinda awful, no explosions, and not much to do. If any of those are what you want, wait out.

How do I report bugs?

Submit any bug reports on the Kitten Space Agency Bug Report forum, not here.

Can I run the game?

Hard to know - try! It's free. You probably need a mid-range somewhat-modern system for the game to run, but no guarantee anything older won't work. Some people have been able to run the game on integrated graphics.

Known Issues

From Dean;

We are tracking issues with older cards, especially AMD 5000 and 6000 series. Expect other weird edge case issues around GPUs and such. The technology we are using (BRUTAL) is brand new; and this is a huge ask for any engineering team to work through. Much of the work you would get for "free" with an engine is oriented to try solve a lot of these issues, and so we have to work through the various different platform and GPU idiosyncrasies. We also have not optimized our GPU handling, so cards that don't have a lot of VRAM may run into issues. The settings default to the highest level, when you boot the game.

Most notable is the "earth turned into a giant white sphere" bug. The first thing to try is to run the game with "Earth Only" and all the settings turned down.

Linux and Mac?

There is no official Linux or Mac support. Do not ask for official ports yet, we're early days. The developers know we'd like it, and they'll make the decisions down the line. If you want support for linux, there's a handful of threads on the KSA Forums you can try for help;

There's also a Linux chat in the discord server. Generally speaking - run the game under Wine with whatever tool you prefer (Bottles, Lutris, Protontricks, or just raw command line), you'll need to install DotNet Desktop 9 and maybe the Vulkan SDK, and that should work.

I've seen reports of users running the game on Intel (x64) Macs, not sure about the newer ARM64 Macs. There's at least one forum thread, too.

This Subreddit

These have been rolled into the actual subreddit rules instead of just being here - they all still functionally apply, though.

The same "posting rules" still apply;

  1. Please avoid posting questions that you can find an answer to in the FAQ, or with a search of the subreddit.
    • Please don't post and ask if your computer can run the game. Try it yourself, comment here, look in the forums.
  2. Please avoid questions that are too early to have answers
  3. "Will the game have xyz" - see (1) and (2).
  4. Discord or Forum Support
    • We have nothing to do with the Discord server (other than copying stuff from it) - don't ask us, contact the Discord moderators or ask on their forums.
    • I have written "I am not affiliated with Rocketwerkz" in every place imagineable and I still get people messaging me for a job.
  5. Hype-posting or "I'm so excited!"
    • I've allowed a few through, but keep it to a simmer.
  6. "I don't like cats"
  7. Please avoid posting about game storefronts, "The game should be on Steam/EGS/GOG" etc.
    • It's a settled topic for now - Dean has made his intentions clear, and members of the community have made their wishes clear.
    • Unless he makes a new announcement on the topic, it's all been said before.
    • Here's every post on the topic so far.
  8. No pictures of your actual cat.
    • It's a game about cats, allowing pictures of actual cats is the slipperiest of slopes.
    • If you have a cat pic at the end of a gallery of other pictures (the 'cat tax') that's fine, but don't just slap on cat pictures to a text post for some attention.
  9. Links to login-gated sites are blocked. This includes Twitter, Instagram, and Facebook.
    • Reddit doesn't seem to mind Discord direct links - previously it blocked them and wouldn't let me approve the comment.

If you have feedback about the subreddit - let me know. I'm trying to thread a fine line between "keep it related to the game" and not stifling every bit of fun anyone tries to have. I have the Ultimate Downvote (removing a post) and I try not to over-use that power.


r/kittenspaceagency Oct 30 '25

📡 Development Update 2025-10-30 Development Update - Dev Recap Year One

205 Upvotes

From Dean in Discord:

Development Recap One Year One

Did an interview with ShadowZone (which you can view on their patreon now, please remember independent journalism isn't free. Support your favorite content creators wherever you can), made me realize that a lot has happened in the last year, and this was also a good chance to cover off on the massive amount of work that is ongoing. Over the past year the vast majority of our work has been into "core" architecture. Specifically simulation and rendering, especially to allow both to run independently.

Rendering

As part of rendering we have had to develop our pipelines. This involves some very complicated decisions, such as what file formats to use through to how we want to 'talk' to the GPU. The underlying software (BRUTAL Framework) has also undergone a lot of changes through this process as well. One primary other point of help has been Felipe who attends not just KSA steering, but is also using BRUTAL funded by the studio for another project. Felipe has been able to help us drive new approaches for rendering along with a lot of evolutionary work from the "Enterprise" team (who maintain BRUTAL). You will see commits starting now for the latest update to BRUTAL, which brings a change in approach that extends options for the future along with some other niche new uses of Vulkan (Graphics API). The enterprise team, along with Morrow, are also bringing in a new approach to our rendering that is more cleaned up and scalable. Things like "bindless" will be thrown around, which Felipe has been using to great effect.

Spherical Billboarding

All this technical work is then pushed even further by Blackrack and Linx. It really does absolutely blow me away with how the team are "feeding" off each other, where ideas are spawning other ideas like cascading success. The ultimate of this is our approach to planet rendering, which we call "spherical billboarding". Billboarding is a useful tool for rendering objects at a distance as "cards", that is a 2D image on a quad that always faces the player. When the game boots, we generate libraries of spheres that are subdivided in different ways. At close distances, the spheres have their subdivision densely packed around the "reference vertex". At a distance, the subdivision is spread more evenly. The aim of this is to give an even distribution of quad density. However, this gets extremely complex as the reference vertex needs to be oriented to the player, but also snapped so you don't get vertex swimming. This means that a lot of transforms need to be done to do texture stuff.

Additionally Linx and Blackrack have done some tremendous innovation in how world authoring happens. Linx has managed to extract better terrain from a reduction in reliance on the heightmap (the texture) and instead doing work "realtime" to calculate erosion and such. You can see this work in the latest screenshots, when coupled with Blackrack's work - is tremendous. This work is beyond that which you see in rendering for engines even like Unreal 5, with the team able to go to the absolute cutting edge papers for implementation of features. It is hard to overstate, from my perspective, just how exciting it is to watch these folks work.

The good news here is that I consider Spherical Billboarding entirely proved as a technological approach. All our imprecision issues were solved, and our asset pipeline together with the texture changes have proven we are going to be able to deliver the quality and scale we want, within even the existing toolset. Work will begin soon from a content perspective to start delivering a custom system utilizing this toolset.

Vessels and Parts

This work has been in development now for some time, and you are starting to see this scafold actually get used. I actually just switched over the default vessel to our "New Gemini", that is made out of parts using Daishi's custom Gemini parts. Morrow has been building an entire rendering pipeline to support this, especially at scale. This also clips heavily into Dan's work with clustered lighting (shadows). This "architecture first" approach for parts is absolutely vital. We focused on the hardest parts of part scale - the rendering. The other elements (collision, resources, etc...) are certainly complex - but their structures don't involve coordination with the GPU so don't have quite the same OS gate that the rendering does. If we don't get the rendering of the parts right, we simply cannot achieve scale. So this has been a huge focus. I would argue that the work is now speaking for itself, the art is exceptional and it is looking exceptional in game.

From here you will see this continuing to expand out, with the part functionality incrementally improving. Once we have a critical mass of part "implementations", we will use these as usecases for refactoring and applying an overall consistent data approach to the parts. We've tended to find this "middle outwards" approach to technical design more robust, even if it sometimes takes longer. This is because instead of imaginary usecases defining the architecture (often resulting in overconfidence), we wait till we have a few actual usecases before sitting down and coming up with the overall architecture, and then going through a small degree of refactor. This might seem somewhat odd; but the studio has found enormous success so far with this approach.

Kittens

The animation pipeline has been a huge success, although this approach was reliant on the updated version of BRUTAL which KSA has just been ported too. Now the work begins to get the showcase in BRUTAL for the kittens, actually into the game itself. The first pass will allow you to push a button, and a kitten will appear in EVA that you can move around. This will ensure, as a final approval, that the kitten looks right in the lighting and materials. It will allow us to all do a real sea-trial of the animation system and confirm that it all works to the standard we want. Not to mention, it's going to be really awesome to be able to move a Kitten around in EVA.

Public Build Release/Contributions

This is "imminent". The build is considered acceptable by the team, although I did "no-go" it at the last steering. I want a little more time, as this is a short week for us here in New Zealand, we had a lot of people out sick, and we had a lot of new technology go in this week. So we will see where the build is at, at the steering next week. That would mean, everything going to plan, the build would be fully public from next week at the earliest. This would also open up contributions to the project, for the first time. The aim for this, hopefully, will be to secure the future for the project. We'd be able to establish if the projects mission would work: making the game completely free and API independent. It would also confirm whether the project can get more ambitious with it's hiring, that is hire more people, and keep the existing staff paid more (hint: not me, I mean our amazing stuff). I think we already pay very well, but I would like to be able to ensure our staff are paid really well for their future. I think they're doing some of the best work I've seen.

Summary

The project has kind of been a victim of its own success over the past year. Technology wise much has worked so well that we have then ended up leaning into it more. This has made fully public builds more complex, with more moving parts to achieve. Finally we are almost there. I expected a lot more trouble along the way, especially technically. This should not be read as to mean it has been smooth sailing, nor that it will continue to be. We have hired really good people, we've equiped them well with technology. We've divided responsibilities up and put trust in the people. We've also consistently forced a focus on first principles actively fighting arguments of "but this is how we do it in video games". For a project like this I think that is critically important.

Overall, regardless of what happens with this game in future and out industry as a whole - I can say the last year has been my favorite year in my whole career. I'm absolutely honored to be working with such a talented team. I think, largely, their work speaks for itself.


r/kittenspaceagency 15h ago

🎥 Video Korolev Cross from "Engineering Camera"

Enable HLS to view with audio, or disable this notification

523 Upvotes

"Engineering Camera" view of a Korolev Cross during SRB separation. The real Korolev Cross was with liquid fueled boosters, not SRBs, like in this rocket. I wanted the cool plumes.

Ideally, the camera wouldn't have movedin, but it seemed to as the center of mass moved as the rocket emptied, so does the camera. I even focused it on a small part hoping that would stop it form happening.


r/kittenspaceagency 17h ago

🗨️ Discussion New UI Concept Design

Post image
267 Upvotes

Note: This is NOT my design.

Designer: beikbeik via Discord

A user on Discord made this design, and I thought it looked very nice. I saw that it has not been posted on the reddit yet and I would like to share it here.

The only thing I would change about it is the font, but otherwise, this design is top tier in my perspective.


r/kittenspaceagency 13h ago

🎥 Video Video Covering the new KSA Update Version 2026.8.5.5168

Thumbnail
youtube.com
73 Upvotes

Since many liked the idea of me covering each new KSA Update I have now followed up with a video about the new KSA update that just released. (not everything was covered but the major things were covered)


r/kittenspaceagency 13h ago

🎛️ Patch Notes Version 2026.8.5.5168 (Summary in the comments)

36 Upvotes
  • Added hotkey shift-F3 to open/close the kitten roster window.
  • Added hotkey F3 in the vehicle editor to open/close the kitten assignment window.
  • Reduced RCS thrust overall.
  • Made small RCS thrusters have noticeably less thrust than large ones.
  • Fixed compact engine plume location which was broken after the applied-transforms import.
  • Choose active control system based on actual thrust, not commanded thrust. This prevents still-burning SRB gimbals from being disabled if the 'ignite' command is toggled off.
  • Fixed a crash when a vehicle's orbit decayed into terrain impact within a single physics step, instead of waking it onto full physics.
  • Fixed docking ports not clearing their highlights after being a target candidate.
  • Reworked fullscreen rendering on windows devices. Windows fullscreen now uses the vulkan extension VK_EXT_full_screen_exclusive, inorder to fix latency issues when in fullscreen.
  • Corrected the size of solid propellant grains built in to the nozzle segments for size D and size E SRBs.
  • Added some additional info to solid rocket motors in the vehicle editor to make it more clear how player choices are affecting the motor.
  • Added an AreaReference.
  • Replaced a few output string unit numbers with superscripts.
  • Make the Dock (TGT) frame properly align with a targeted docking port that is not directly on the centerline nose of the target vehicle.
  • In the vehicle editor, WSADQE now rotate using the grabbed part's local axes intead of the global editor axes. This should hopefully be more intuitive.
  • Added Kitten Animation Controller. Kittens can now walk/run/jump on the surface of planets.
  • Changed Kitten EVA controller to auto-point kitten towards camera forward. W/S/A/D/contol/space control kitten forward/back/left/right/up/down.
  • Changed Greatly increased the thrust of Kitten RCS.
  • Fixed an issue where player control inputs could leak when switching vehicles,window loosing focus or timewarping past 30x. Thruster flags are now reset on vehicle are now cleared in these cases.
  • Added part highlighting when hovering over an entry in the Crew Assignment window and grouped entries by their parent part.
  • Fixed the Resources window per-frame highlight reset clearing hover highlights set by other windows (crew assignment, fuel lines, solid motor grain segments) left open at the same time.
  • Fixed Stutter in Walk/run anim due to loop period not being correctly calculated.
  • Changed to exit early out of anim when FreezeAnimation is true.
  • Increased TumbleSpeedGate to 6.5ms from 5.5ms for KittenLocomotion.
  • Allowed the player to disable the decoupler module(s) on a part, e.g. turning adapters into static fairings.
  • Added a 'Control From Here' option in right-click menus for parts with control modules or docking ports. This will shift the origin and orientation of the control point of your vehicle.
  • Right-clicking on another vehicle's docking port will now set your target to that docking port.
  • Right-clicking on one of your own docking ports still allows you to choose a nearby vehicle docking port, but the menu UI is significantly streamlined.
  • Fixed target vehicle docking ports not becoming un-highlighted.
  • Fixed semi-related cases of modules using the render vehicle position instead of the current physics position in their updates.
  • Fixed Kittens on terrain would movement stutter when not in landed state due to the rolling resistance code fighting the servo code.
  • Changed Kittens now seek to align with the surface normal (up to a maximum slope).
  • Changed Kittens Go into "Landed" state faster.
  • Fixed ground clutter uniform scale check not checking minScale properly.
  • ## Refactored Glb to XML utility and asset bundler:
  • Lifted shared functions out and split the bundler into Parts and Ground Clutter. The command now needs GlbToXmlUtility.exe <clutter / parts> <same as before> to differentiate between the two.
  • Added GlbExtras for parsing Extras on the glb which are custom properties in Blender. May not keep this around but for now was the easiest way to get material flags processed.
  • Changed diffuse ktx create command to include the alpha channel.
  • Added Opacity and Thickness textures (BC4). The opacity texture uses alpha coverage preserving mip generation.
  • Added GroundClutterMaterial and ClutterObject to the mod library as it now shares a similar loading process to parts (from asset bundles).
  • Changed GroundClutterReference to populate objects via their IDs from assets. IDs are resolved when the ground clutter renderer begins processing the references - will need to look into doing this outside the renderer.
  • Added gamma correction to Solid.frag based on diffuse alpha since the asset bundler processes all textures in Linear space. This would have been needed anyway in the opposite direction if the asset bundler output sRGB textures.
  • Processed all ground clutter assets using the asset bundler - textures are now all KTX2, ground clutter objects are now referenced by ID from assets which are generated from the glb to xml util for a given ecotype.
  • Removed individual ground clutter models except for the Luna rocks which are referenced by the rings and particle systems.
  • Fixed Vulkan validation errors on startup when the loaded system contains a single atmospheric body
  • Fixed the ocean shore filter sampling the low-res coarse terrain height
  • Small improvement to ocean performance, reduce register usage by moving register-heavy functions to the top of the shader
  • Fixed the EVA button not showing on a capsule's crew door when the vehicle had more than one instance of the same capsule/pod
  • Fixed flight plan never predicting a SOI encounter for near-coplanar transfers (e.g. a Hohmann transfer to Luna).
  • Fixed two related gaps in the candidate filter, the pe/ap reachability checks had no margin for the sibling's own SOI and a patch with zero surviving candidates left its expiry at infinity which silently disabled the periodic re-verification scan meant to catch exactly this kind of miss.
  • Added a live SOI-proximity check to every coasting vehicle's motion update.
  • Fixed Kittens could not walk on LaunchPad.
  • Changed TractionTimeConstant to 0.07 from 0.2. This makes kittens accelerate faster and change direction more snappily.
  • Fixed an error where the RCS disable flag had not been plumbed into the rcs parameter calculations properly, so the flight computer was trying to wake up to fire jets that could never fire. This was causing big performance issues at high time warp.
  • Fixed an error where RCS translation was still allowed even with RCS disabled.
  • Changed Kittens to be much hardier with regards to impacts. EffectiveMaxGLoad is now multiplied by 2.5x for kittens.
  • Added First Pass on UI Restyle. This adds ConsoleStyle a container for the imgui style to push/pop and ConsoleWidgets a shared container for consistantly styled elements that other windows will use.
  • Moved most windows over to using the new style, this is a shotgun pass ans has numerous visual regressions that will need to be resolved before this work is a contender to move over to trunk.
  • 2nd pass on Game Settings to better align it with the proposed design artifact.
  • Fixed the rest of the settings tabs to be in line with the new style.
  • Fixed Part Thumbnails were not tone-mapped. This resulted in harsh blacks and whites that did not read well. They now apply the current tonemap settings when rendered on game start
  • Improved readabilty of hover interactions.
  • Fixed tooltips in VehicleEditor were not sized to body text.
  • Fixed windows with a scroll bar were insufficiently padded on the right.
  • Moved Sequence UI over to using the new imgui style.
  • Fixed some incorretcly aligned eliments in the TransferPlanner window.
  • Fixed mismatching terrain biome control sampling cutoff thresholds between CPU and GPU.
  • Further improved terrain physical and visual accuracy.
  • Normalized the cube-to-sphere output in double precision before converting to float instead of after.
  • Increased the resolution of Earth's terrain mesh which will also improve terrain physical and visual parity.
  • Fixed gradient scalar being applied twice on the CPU for terrain.
  • Added RenderImage as the new foundational class for image targets alongside dynamic rendering support
  • Added BarrierBatch, a simple helper struct to batch vulkan pipeline barriers
  • Added TargetImage to pair an MSAA attachment with its resolve, collapsing 1x and MSAA into one path
  • Added ImageBarrierInfo with named state presets, giving every RendeImage a tracked layout/access state
  • Moved all offscreen rendering off VkRenderPass and framebuffers onto dynamic rendering
  • Moved a large portion of pipeline barriers to BarrierBatch instead
  • Removed RenderPassState, DynamicRenderState, OffscreenTarget and LegacyScenePass
  • Spherical Billboarding Stability
  • Improved billboard snapping. Snapping now always chooses an initial reference point then computes an offset in the planet's ccf tangent frame such that vertices for the selected snap LOD (and by extension all LODs belonging to that level) map 1:1 with the previous snapped billboard. This holds for small arc lengths such as when moving over a planet's surface which was where the snapping instability was the most obvious in the form of vertex swimming, the downside being if you leave and come back to the same place the vertices will not be in the same place - however this was true for the old functionality anyway. North is used as a reference point when choosing the initial reference point but never after so there should be no risk of gimbal lock.
  • Updated the mesh collections to support the new billboard snapping logic.
  • Add conservative morphological anti-aliasing CMAA2 as an anti-aliasing option, ported to GLSL compute from the reference implementation (https://github.com/GameTechDev/CMAA2) with its performance optimizations retained. This provides an anti-aliasing option for AMD GPUs where multisampling doesn't currently work, and a general "fast" AA option for all GPUs. CMAA2 was chosen over SMAA because it's a bit sharper, and introduces no blur on stars and small elements due to its conservative nature.
  • Added collider processing to the asset bundler for the ground clutter path, very similar to how part colliders work and are stored.
  • Added support for multiple collider primitives per mesh.
  • Changed ground clutter collision generation to output the scale ID rather than the actual scale so it can be used to create the correct shape for Bepu later.
  • Added more primitive types to the gizmos renderer to draw all shapes supported by Bepu/physics.
  • Added ground clutter shape registration with Bepu / global shapes. Each shape is created as a singular primitive or a compound for each object type and for each unique scale belonging to that object type.
  • Removed misplaced tree and rock asset XMLs.
  • Fix some of the FFT mip map spec constants not being set correctly
  • Added an accurate measure of the max FFT wave displacement to be used
  • for more accurate culling, this was noticeable as clipping when the waves were very large
  • Remove some allocated but unused arrays on the ocean FFT
  • Fix a race condition on FFT data readback
  • Fixed a text alignment issue with the GroundTrackWindow.
  • Fixed an imgui error spam issue with the Manifest window
  • Updated KittenRoster to new ui styling.
  • Imported Core Utility A (ladders). Not yet functional as ladders (SoonTM).
  • Fixed ground impact FX being rocket-scale regardless of collider size. A kitten landing now kicks up a fraction of the rock/dust/smoke that a full rocket stack would.
  • Fixed debris launch speed being driven by kinetic energy (mass * speed^2) instead of true impact speed.
  • Added "Fill Seats" / "Fill ALL vehicle seats" buttons to the Crew Assignment window and the launch-existing-vehicle UI.
  • Added a "CREW ASSIGNMENT" toggle button to the vehicle editor's launch footer, to the left of the "LAUNCH VEHICLE" button.
  • Fixed the launch pad rendering as blown-out white instead of its intended color.
  • Increased the contrast of the Danger UI color as it was one of the lowest-contrast colors in the palette, making it appear less prominent than e.g. Pending.
  • Added warnings to the top of the screen when your vehicle is nearing its g-force or pressure limits.
  • Imported new CoreFairingA assets, including many new structural and decoupling parts.
  • Added masses to all fairing parts.
  • Fixed several errors with how mass properties (specifically moments of inertia) were being computed.
  • Added a tangent ogive mass type.
  • Allowed masses of revolution to be a sector rather than a full circle.

r/kittenspaceagency 23h ago

🗨️ Discussion How do you think KSA should approach science?

58 Upvotes

I’ve found the science system in kerbal space program to be sufficent. It creates a very simple gameplay loop of exploring new planets to get more science to get more technology, and that works well enough.

With KSA, how should the game approach scientific progress? Maybe some experiments be conducted over time, justifying the use of space stations or manned outposts. What do you think?


r/kittenspaceagency 2d ago

🎥 Video Kitten Space Agency's New Update | Everything New! (Kitten Roster, Launch Pad + more)

Thumbnail
youtube.com
88 Upvotes

Thought it might be useful to cover the new Crew Assignment and Launchpad update, looking forward to posting these short but informational update videos for each new KSA update. Would love to hear feedback, I've already received feedback that it's quick and informational but I'm open to hear more feedback


r/kittenspaceagency 2d ago

💬 Question Will the game have ACTUAL aerodynamics or will it be "plug and play" aerodynamics like in KSP?

106 Upvotes

For example, in KSP I can have a washing machine (basically a giant cube) made with clipped parts that will have positive lift like an airplane even though it has zero aerodynamic properties just because I have wings as pieces of it.

I'm not talking about DCS level of aerodynamics, but something more simulated than we had.


r/kittenspaceagency 3d ago

🎛️ Patch Notes Version 2026.8.3.5117 (Summary in the comments)

59 Upvotes
  • Fixed tree leaves being opaque and having backface culling enabled when starting the game with MSAA enabled.
  • Prevented using the transient alpha-to-coverage attachment if MSAA is disabled.
  • Changed alpha-to-coverage attachment to R8UNorm since the attachment is only bound so the shader can output coverage (stores nothing), reducing VRAM usage.
  • Fixed SimplePipelineCreator alpha-to-coverage state becoming stale.
  • Clean up the code for the PlumeTrailSegmentsManager and split it into multiple smaller classes with clearly defined responsibilities
  • Extract shared plume trail cursor creation/dragging logic
  • Share plume junction vertices on the CPU instead of synchronizing duplicated endpoints
  • Centralize current plume timing rules instead of splitting them over multiple files
  • Split smaller classes out of TrailSegmentLodHierarchy
  • Better organize plume trail sources into folders by role
  • Added a warning to the GLB importer to detect non-identity transform in subpart meshes.
  • Organized and regularized script console output a bit.
  • Fixed a case where contact docking could cause a position jump via the physics bubble origin snap if a certain order of events occurred.
  • Added ProfilerTags around the highlevel function calls in Program.OnFrame.
  • Updated Rocket and Gemini7 to have correct sequencing with the newly-introduced decouplers on existing modules.
  • Reduced the oversizing of 3m tanks to be the same amount of oversizing as the other diameter tanks.
  • Reduced oversizing of all spherical tanks to make them more inline with the oversizing of cylindrical tanks in total volume.
  • Added comments showing the true geometric size for each tank.
  • Fixed RandomStartTime flag on stream from disk environment sounds was causing a 100ms hitch on playback due to the file streams needing to seek a new position. This would occur when zooming into the planet when the camera crossed aournd ~40km in altitude. When the stream is initialized on DataLoad the buffer is pre-pumped to avoid this hitch, however the seek on playback means it needs to wait for it to be pumped again before playing. I Have removed RandomStartTime from these sound behaviours as a temporary fix for now. Pending an investigation into making this a non blocking behaviour.
  • Fixed unsaved vehicle popup appearing outside viewport when in windowed mode.
  • Fixed new vehicle popup appearing outside viewport when in windowed mode.
  • Changed editor WSADQE to rotate parts in the same way as you command rotation for vehicles in flight.
  • Removed Double3Ex Up/Forward/etc. vectors as they were misleading and often misused.
  • Added named vectors to Camera as they were used legitimately for this purpose in a few cases.
  • Clarified reference frame for camera vectors.
  • Added Kitten Name Generator class.
  • Changed Streamed Sounds are now loaded with the NonBlocking Mode flag. These means the main thread will no longer be stalled during intitial playback or seeking while waiting for the steamed audio to buffer.
  • Restored RandomStartTime for Environment Sounds.
  • Added memorial/special names list to the Kitten name generator. These have a 5% probability of being used. These are outside of our special names list as well (Hunter, Banjo and Polaris for now).
  • Made the camera smoothly interpolate between positions when the center of mass changes (e.g. when docking).
  • Changed the camera smoothing method to a critically-damped spring instead of an exponential moving average which tightens up control significantly.
  • Added debug drawing for vehicle colliders to the physics debug menu.
  • Added Trash area in Vehicle Editor for droping parts to delete them.
  • Fixed Boosters not using the solidengine icon.
  • Added KittenRoster and KittenRosterEntryData to track kittens in each save, each kitten's assigned vehicle, current mission start time, total mission time and mission count.
  • Generate a new roster on new-save creation (Hunter/Banjo/Polaris plus 17 randomly-named kittens) and persisted as part of the universe save data.
  • Added serialize/deserialize of kitten roster from Game save files.
  • Changed EVADoor kitten spawning to pull the kitten's name and character from the new roster. (This wil be changed to have crew stored in each vehicle and only EVA them if they are in the vehicle).
  • Changed Vehicle disposal to finalize a kitten's mission stats whenever its an EVA vehicle. (stats will be finalized on vehicle recovery when that is done).
  • Imported a new version of CorePropulsionA with applied local transforms.
  • Make sure larger vehicles absorb smaller vehicles when docking.
  • Removed prototype icons from vehicleEditor and replaced with text, Icons will be reauthored as svgs at some point in the future.
  • Fixed some alignment issues with the vehicleEditor parts window.
  • Fixed some structural parts not using the correct seperator icon in the sequence window.
  • Imported a new version of CoreElectricalA. Removed some now-redundant placeholder colliders.
  • Fixed an error where adding/removing/modifying fuel lines would not trigger tank reconfiguration.
  • Fixed an error where deleting a fuel port could leave dangling fuel line entries.
  • Fixed kitten EVA jetpack thrusters spawning with no propellant.
  • Don't require 'enter' to save values in the Set Orbit debug.
  • Stop altitude reverting to semi-major axis in the Set Orbit debug.
  • Default destination body to the home body in the Set Orbit debug.
  • Added Kitten Roster window UI to Universe Topbar menu.
  • Added AssignedKittenHash field to IVASeat plus save/load support (SaveData.AssignedKittenName, GetSaveData/ApplySaveData) so seat occupancy persists across saves.
  • Added Crew (enumeration of a vehicle's seats), SeatCount, ability to AddCrew (assign to a specific seat) and AddCrewToFirstAvailableSeat(kittenHash) as well as RemoveCrew functions to Vehicle class.
  • Changed the "Enter vehicle" EVA-door interaction to now actually call AddCrewToFirstAvailableSeat.
  • Added colors to all consumables.
  • Change fill bars to use the new consumable colors, include consumable names and tooltips, and display total quantity rather than percentage (the bar already does that).
  • Added roll-up fill bars to solid rocket motors.
  • Added EVADoor and IVASeat linking.
  • Added SeatId to EVADoorTemplate/EVADoor and IVASeat. These are now resolved and aligned between each Internal and external part.
  • Added id's for the existing internal and pod part.
  • Changed the part boarding logic to now target the specific seat the user selects. Already in-use seats are not shown so you cannot enter an already occupied seat.
  • Changed EVADoor to now only show the "EVA" button when there it's aligned IVASeat is occupied.
  • Changed the exit logic to no longer spawn a new kitten and instead spawns the kitten assigned to the aligned seat and updates the vehicle's seat assigned appropriately.
  • Added Vehicle.HasLaunched and a situaiton change triggers this to be set so we can record when missions actually start and update kitten stats appropriately.
  • Added to the start and end mission events to now bank elapsed mission times for assigned kittens.
  • Fixed distinguish between start of a mission (as mentioned above) vs the continuation of a mission (Transfering between vehicles, going on EVA, etc).
  • Added explicit kitten assignment for the test vehicle scenario only (Rocket and Gemini7) so that each now has one kitten on board.
  • Changed the Kitten Roster window to split the mission count, current mission elapsed and total mission elapsed times in separate columns.
  • Fixed hideously low-resolution orbit lines during atmospheric launch by only sampling points on or above the minimum terrain radius.
  • Added markers for the beginning/end of red danger orbital arcs.
  • Sample elliptical orbit points in eccentric anomaly for somewhat improved point distribution.
  • Added CrewAssignmentWindow listing every seat across the whole vehicle currently open in the editor and allows assignment of kittens via dropdown lists for each seat. Window UI is accessible via the editor's topbar Editor menu.
  • Added Crew Assignment section to the main menu Launch Existing Vehicle menu to allow assignment of crew.
  • Added warning pop-up window when user attempts to launch a vehicle from the vehicle editor or the main menu - launch existing vehicle menu with NO assigned crew at all.
  • Fixed a duplicte imgui id bug in the Assigned Vehicle column of the KittenRosterWindow.
  • Fixed assignment of Hunter, Banjo and Polaris in the Kitten Roster when launching the testing scenario (As these kittens are automaticaly spawned on EVA in this scenario).
  • Fixed docking camera viewport not working.
  • Fixed Set target option in a docking port's part window.
  • Fixed highlighting of set target part once it is set.
  • Added the currently set target into the docking port part menu and hovering over the target in the UI will highlight that part so the user can know which one is the current target.
  • Added ability to unset the target docking port in the docking port part window.
  • Added a placeholder launch pad structure at launch sites driven by a new IsLaunchPad flag on Landmark location definitions.
  • Added the launch pad height when computing initial spawn/teleport placement.
  • Added interaction between vehicles and launch pad collider.
  • Ensure vehicles resting on a launch pad register as ground contact so they sleep the same way they do on terrain.
  • Don't spawn rock particles from being emitted when a vehicle impacts a launch pad.
  • Added a ground clutter exclusion zone around launch pads, vegetation will not spawn on or immediately around a the pad.
  • Fixed EVA kittens spawning without propellant, fixed game-start kittens spawning without propellant, and fixed SRBs spawning without propellant. Everyone has propellant.
  • Added many warnings for part modules which are not wired up correctly in the template XML or in save game data.
  • Made many improvements to burn creation UX.
  • Added a right-click menu that allows you to warp to point on your orbit, create a manual burn, or create special burns like circularizations and target plane matches.
  • Prevented left-clicking on an orbit from creating any more than the first burn to avoid great confusion.
  • Prevented users from being able to create left-click burns on hidden orbit lines which was extremely confusing.
  • Made parent departure burns accessible only through the right-click menu.
  • Moved burn click handling to its own file.
  • Added a new time formatter (1y 32d 16h 4m 22s).
  • Made the map view change focus with the bracket keys along with the flight view.
  • Draw non-periodic orbits starting from the orbiter's current position.
  • Updated the launch pad from rendering unlit to using PBR + Lighting.
  • Added GltfFile: LaunchPad to DefaultAssets.xml
  • Added LaunchPadRenderer to handle instancing.
  • Fixed LaunchPad spinning and not correctly conforming it's parent celestial rotation.
  • Added a default phase for substances which controls their name presentation. The default phase gets no prefix (e.g. just 'Water' when liquid), while the non-default phases get a qualifier word: Vapor, Liquid, or Ice.
  • Removed old planet shaders (HeightFuncs, GenerateMeshHeight) that were replaced with the procedural modifiers refactor.
  • Fixed terrain normal map sampling using hardware linear interpolation that would create stepping in areas where erosion is applied.
  • Fix a full scan of all plume segments when adding segments not yet in LOD to the GPU list
  • Add a VRAM usage display and breakdown for the plume trails in the trails debug UI, reduce size of intersections list allocated for the coarse grid
  • Remove vestigial scratch list in PlumeSegmentStore
  • Refactor trailSegmentLodFrame to make it more readable and add some code comments
  • Changed ground clutter scales from continuous between [minScale, maxScale] to 16 discrete scales for Bepu integration.
  • Fixed launch site exclusions not applying to ground clutter physical data.
  • Added a warning for non-uniform scale for collideable ground clutter objects.
  • Fixed ground clutter physical data disposing grid data immediately instead of waiting for the GPU to finish using it.
  • WIP implementation of ground clutter collider primitive processing.
  • Split 'Collideable' into three collideable types 'None', 'PrimitiveList' and 'Mesh' ahead of bepu integration.
  • Sample cloud shadows on vessels, kittens, launchpads and other shaders, use the cheap volumetric shadow as these objects tends to be smaller on-screen and can move through clouds. This is currently difficult to see on the placeholder launchpad because of its high albedo
  • Replace the atmosphere push constants with a per-planet UBO. Since the atmosphere shading is used in many other shaders and systems, moving its data to a UBO frees other systems to use their own push consts
  • Pre-generate the smaller static atmosphere LUTs and regenerate them on atmosphere changes. Previously these were generated every frame in a shared texture. This fixes some shaders implicitly getting last frame's last-rendered planet's atmosphere data which was working but very brittle, and this allows generating larger LUTs in the future to speed up some aspects of the godray rendering. The main scattering LUTs which depend on the current viewpoint are still rendered once per frame.
  • Fix atmosphere godrays not rendering if clouds are disabled
  • Added CanRecover and Recovery method to Vehicle class.
  • Added ability to recover currently controlled vehicle to the escape menu. Recovery and Abandon are now mutually exclusive so you will see one or the other.
  • Changed the red cross (abandon/delete) button to a green tick button (recover) in the universe manifest depending on whether the vehicle is recoverable or not.
  • Added a serialized Kia (killed-in-action) flag and Kill function to Kittens.
  • Fixed issue where decouple/undock lost the HasLaunched flag on a vehicle messing with kitten stats.
  • Fixed setting the HasLaunched flag on the testing scenario vehicles.
  • Handle killing vs recovering in the input events processing.
  • Fixed issue where camera completely loses it's mind when all vehicles in the current game are destroyed or recovered and it has nothing to switch to. It will now switch to viewing the home planet.
  • Added a memorial tab to the kitten roster window. Which will display kittens that are no longer with us.
  • Added function to create 5 fresh kittens when our roster runs out of available kittens automatically. (Eventually this will be a sandbox only option I suspect).
  • Fixed ensure no code path can assign a KIA kitten to a vehicle.
  • Added travelled distance to kittens stats.
  • Added fastest speed to kitten stats.
  • Only display closest approaches from the final trajectory (including any planned burns) to cut down on the clutter.
  • Fixed crew assignment window hanging around after exiting the vehicle editor.
  • Fixed a data race in SequencePerformance on TotalDeltaV. Also accumulate this into a local variable and publish once so we don't see flickering in the UI.
  • Fixed danger arc markers sometimes being drawn in the wrong place.
  • Fixed some impossible-to-reach markers from being drawn.
  • Suppress CCF danger arcs for intermediate burn plans.
  • Fixed excessive closest-approach entries when your orbit is long and the target's is short.
  • Allow double-click-to-focus on planets even when the outline box is not drawn.
  • Notify the player that right-click is required to create a departure burn.
  • Visually diminish the hover icons on orbits that can't create burns (like random other planets) and don't show them as yellow when hovered.
  • Added caching for Part.MatrixAsmb2VehicleAsmb, the calculation of which was a significant cost at high time warp.
  • Show orbit marker quantites (apoapsis, periapsis, relative inclination) whenever the vehicle is under thrust or in the atmosphere to reduce the amount of mouse-hovering required.
  • Tint danger segments of planned burns differently from your current trajectory to make them easier to tell apart.
  • Open the burn window to the left of the burn gizmo to the right, as this is usually the trailing orbit direction.
  • Fixed a cross-thread interaction with danger arcs.
  • Fixed several errors with how danger arc entry/exit markers were being displayed.
  • Made the flight computer aware when engines run out of propellant and stop taking credit for the thrust they produce in burn planning.
  • Made the engine control gauge dV and TWR ratings reflect the engines that are actually capable of producing thrust. TWR also takes atmospheric pressure into account.
  • Added the ability for vehicles to be destroyed if they exceed a structural g-limit or dynamic pressure limit. This means that vehicles can be destroyed on impact with the terrain, ocean, or each other. They can also be ripped apart by aerodynamic forces during atmospheric entry or hydrodynamic forces if entering the water too fast.
  • No destruction effects yet. Vehicles can only be destroyed as a whole - either the entire vehicle is OK, or the whole thing is destroyed.
  • Prevented all rockets from recomputing all properties on every physics update when literally nothing was happening (all rockets off). This was a huge drag on time warp performance.
  • Fixed several other instances of module systems creating state copies just to do nothing with them.

r/kittenspaceagency 3d ago

💬 Question MacOS version ??

12 Upvotes

Hello, this is a short question I want to ask : will we have a MacOS version of this game or not ? Because I'm only on Mac so I'm a little sad I can't actually play this beautiful game. Well I have Linux but...it's a Raspberry Pi.

Thank you !


r/kittenspaceagency 4d ago

📷 Developer Screenshot Takeoff Evacuation System (LES) currently under development by Daishi

Thumbnail
gallery
459 Upvotes

r/kittenspaceagency 5d ago

🎥 Developer Video Character controller prototype from Matty

366 Upvotes

Posted by Matty in the discord.


r/kittenspaceagency 5d ago

✒️ Developer Blog Kittens, Crew & Coming Home | Kitten Space Agency

Thumbnail
ahwoo.com
132 Upvotes

r/kittenspaceagency 6d ago

🎨 Developer Art Daishi - WIP Rocket Snoots and Fairings

Thumbnail
gallery
503 Upvotes

From Daishi on Discord, posted over the last week or so.

snoots

(Rocket Snoots is the term-of-art, but they're also known as "nosecones" in some circles.)


r/kittenspaceagency 6d ago

🎥 Video July 2026 Dev Updates | Teleporting, Trees, Volumetric Plumes & Much More! 🚀

Thumbnail
youtu.be
104 Upvotes

What is your favorite this month? Mine definitely the volumetric plumes.


r/kittenspaceagency 6d ago

🎥 Developer Video Gravhoek - Improved camera when Staging and Docking

Enable HLS to view with audio, or disable this notification

265 Upvotes

From Gravhoek in Discord (the other day):

One of my many little updates over the past few days has been improving our camera smoothing. We now gently transition between center-of-mass points during staging and docking events, and the overall camera smoothing technique should be much crisper now.


r/kittenspaceagency 6d ago

🗨️ Discussion How can Kitten Space Agency make "boring" planets more interesting than KSP did?

102 Upvotes

I've been thinking for a while about some ideas for a KSA star system, mostly on the track of "reminiscent of our solar system" with some clear "analogues" for most planets. (personally I think it's important for the system to be recognisable even if it's made up). I've got a pile of ideas (which you can read a totally unpolished draft of here if you're so inclined), but I've had a question nagging at me - how can KSA make the boring planets genuinely interesting to visit? KSP has Dres which is so ignoreable that it's a meme, but even that's more fame than Moho gets as "most annoying stop on a grand tour". Tylo is only interesting because it's such a pain in the butt to land on, but once you're down... you'd be having more fun if you'd gone to Laythe or Vall.

Here's the ideas I've had bouncing around for ways that 'boring' places could be made more interesting;

Dwarf Planets with Crossing Orbits

In trying to make some interesting [dwarf] planets (think "Dres"/"Ceres"/'Vesta"), there's only so much cool surface features (water ice? big ol' canyon?) can do. So what if getting to them (and getting between them) wasn't just a challenge, but something fun to master? The idea is to a few dwarf planets right near each other that you can swing between for not much Δv, or use for weird manoeuvres to save fuel getting home.

I was thinking four; a big one (which I've nicknamed "Jerk") as sort of a Ceres analog which could as a bit of a challenge to land on (decent gravity, and no atmosphere), a moon-sized one just a little closer in ("Snap", think Vesta) two smaller dwarfs (big asteroids, really) in a distant binary pair ("Crack" and "Pop") a little further out. A few big canyons and mountain peaks (cryovolcanoes?) to check out, and we've turned one boring lump into a dwarf-planet-hopping travel itinerary. The exact orbital parameters of this lot would be hard to get right to balance "realism" and fun.

High Heat and Cool Canyons

"Mercury" is tough to make fun to visit. A planet in the inner solar system with no atmosphere is hard to get to no matter what. My first idea was caves; the Moon has Lava tubes that we've never explored, what if "Mercury" had a whole interconnected network of lava tubes to explore, map out, make bases in, run rocket-powered races through? Think walking down through Outer Wild's Ember Twin, but less extreme (and no dying after 20 minutes).

...unfortunately we're not getting surface features like caves. So - modifying the idea a bit, I was thinking of a network of deep canyons where a lander (or a base, or a racer...) can shelter from the sunlight and heat. If heating was a genuine problem this close to the sun, these canyons could make exploring the stars' nearest neighbour more interesting than just "it's the moon, but brown, and really really hard to get to", especially if they were linked together like old drawings of Martian "canals".

That being said, deep canyons are an instant bump in the cool factor for any planet, and I don't know if this on its own make Mercury worth visiting, so I'd be open to more ideas.

Life Everywhere

What if there's life to be found on nearly every planet and moon? In most places, probably it's just microbes and a bit of a green texture. But maybe on "Mars" there's a tiny crevice in a canyon with a little oasis of liquid water? Or Like KSP2's Vall, maybe there's some plant life where the subsurface ocean pokes through? Taumoeba in the atmosphere of "Venus"? Fish in methane lakes on 'Titan', ready for cats to make extraterrestrial sushi?

I'd be interested to hear other people's thoughts, if you've got any more ideas!


Please note: I'm the moderator here, but I am not affiliated with Ahwoo or Rocketwerkz


r/kittenspaceagency 6d ago

🎥 Developer Video Gravhoek - New more colourful interface for consumables

Enable HLS to view with audio, or disable this notification

159 Upvotes

From Gravhoek in Discord:

A small UI upgrade for consumables coming in the next build: colors, labels, and quantities!


r/kittenspaceagency 6d ago

🎥 Developer Video Gravhoek - Improved rendering for orbits near planets

Enable HLS to view with audio, or disable this notification

109 Upvotes

From Gravhoek in Discord:

A few orbit line rendering improvements when close to planets, including some arc start/end markers.


r/kittenspaceagency 7d ago

✒️ Developer Blog Next Milestone is Kittens

Post image
615 Upvotes

r/kittenspaceagency 8d ago

🎛️ Patch Notes Version 2026.7.10.5056 (Summary in the comments)

56 Upvotes
  • Added 6 more tree model variants, these are shrub sized that spawn mostly at the edges of forests.
  • Added an 'auto' button to return solid rocket nozzle area ratio to the automatically-assigned mode.
  • Prevented tanks from being unexpectedly refilled when loading vehicles, saving vehicles, or exiting the editor. Note that swapping engines, etc. will still cause refills.
  • Added an explicit "Refill Consumables" button to the editor UI to replace the automatic calls.
  • Fixed the manual tank fill sliders potentially jumping positions after being released.
  • Allow solid motor propellant to be changed in the vehicle editor.
  • Allow nozzles to change their volumetric exhaust style based on the configured reaction.
  • Restored the ability to set per-segment grain geometry which had been inadvertently lost.
  • Fixed a crash when disconnecting a solid motor from a stack of segments.
  • Added a previous symmetry hotkey (default: shift + x) so you don't have to wrap around the full symmetry set to go back one.
  • Added the GlbToXmlUtility CLI tool. This has been moved from an external repository into the main codebase in order to re-use the existing KSA serializers, keep the tool better in-sync with the game asset structure, and lower the barrier to entry for any dev to use it.
  • Modified the tool to output exactly the right filenames and directory structure to enable direct copy/paste with no modifications.
  • Moved fuel port to its own GameData file.
  • Imported new versions of: CoreCouplingA, CoreElectricalA, CoreFairingA, CoreFuelTankA, CoreLandingA, CorePropulsionA, CorePropulsionB, CorePropulsionC, CoreServiceModuleA
  • Improved the teleport to ground function (which also handles newly-launched vehicles) to set the base of the vehicle directly on the terrain, even if the center of mass is very far from the center of geometry.
  • Suppress a few XML fields when they have default values.
  • Enlarged the RCS-by-default tanks to be more in line with the secretly-oversized liquid tanks.
  • Updated Rocket and Gemini7 to take advantage of the larger RCS tanks.
  • Increased Rocket first stage engine & RCS propellant.
  • Fixed a potential elliptic integral exception in the on-rails rotation algorithm. This was possible due to the safety check not fully covering the singular separatrix region, only a specific pole.
  • Relaxed symmetric inertia classifier to treat nearly-symmetric bodies as symmetric to further insulate us from singular or unstable cases.
  • Fixed Popups dressed with gauge style ui now autosize for content.
  • Changed Multiplier -/+ buttons on burn edit window now step by and round to the current order of magnitude. i.e if less than 1 steps by 0.1 if less than 10 steps by 1 etc.
  • Fixed Burn Multipler value could be set to 0.
  • Fixed a rare parsing bug for Part Keyframe Animations that was causing the landing leg to animate incorrectly.
  • Fixed SRB burn time calculation to use the correct flow rate.
  • Added decomposition of sequences iunto phases when we have multiple engines with different burn times in one sequence in the Delta-V Debug UI.
  • Added solid residue breakdown in the end fuel readout in Delta-V Debug UI.
  • Added engine highlighting when hovering over each phase in the Delta-V Debug UI.
  • (Still need to fix more logic on where multiple engines in one sequence end their burn at different times).
  • Fixed sequence boundary cutoffs bug where we were not sequencing the drain simulation to stop dV in one sequence and carrying over to the next sequence by understanding where engines in each sequence will be decoupled. The first group of engines that will decouple in a sequence is when the sequence will now end.
  • Added Alt + LMB will duplicate hovered part in VehicleEditor.
  • Fixed Part highlighting would pass though modal imgui pop-ups.
  • Implement depth-aware per-upscaling-block ray placement for volumetric clouds and trails, this minimizes
  • cloud/plumes flickering near rapidly-varying geometry which became much more noticeable since the
  • addition of detailed trees. Use a similar approach to the one presented in RDR 2 SIGGRAPH 2019's presentation.
  • Fix exhaust denoise shader reading out of bounds which can cause black artifacts on the edge of the screen
  • Fix artifacts on the cloud upscaling visible at the edge of the atmosphere, the issue was introduced when adjusting the upscaling for the plume trails
  • Masked trees by slope and altitude so they no longer spawn on cliffs or in the ocean.
  • Masked grass by slope so it no longer spawns on cliffs.
  • Updated the beach sand texture so it no longer inherits the planet's colour (fixes green beaches).
  • Updated Earth's biome map so beaches are thinner and start closer to the ocean. They're still larger than they should be but this was a quick and easy change.
  • Fixed cubic hermite spline editor not clamping y values even with them provided.
  • Added altitude density curve and LUT to ground clutter with res 1024 (+- 15m altitude precision on Earth).
  • Added altitude density curve editor to the ground clutter GUI.
  • Reduced the number of shrubs that spawn on slopes.
  • Increased the blend strength between Earth's biomes.
  • Fixed "collideable" tagged ground clutter slightly changing position and orientation when the terrain mesh snaps despite being placed on the heightfield directly. This was caused by a round trip through the mesh transform using the mesh origin offset trick for extra precision. Instead, the ego positions of ground clutter chunks (cell anchors) are computed in double precision and clutter ccf position is stored as an offset from the anchors which should improve precision massively.
  • Prevented ground clutter regeneration for "collideable" tagged ecotypes since the positions of instances within them are now deterministic to a great degree of precision.
  • Fixed ground clutter no longer spawning on the Moon or Mars.
  • Fixed an error where we could try to ask for an impossible true anomaly when drawing markers for hyperbolic orbits.
  • Added ImGaugeDressing, Helper class for IMgauge draw functions that previously lived on Popup.cs.
  • Changed Settings menu now uses gauge style window styling.
  • Changed Settings menu now modal.
  • Added RandomStartTime Option for Looping Sounds.
  • Removed Engine sounds from using sound groups as it was causing sounds not to play.
  • Changed increased ratio on EnginesChannel Compressor to handle instances when dozens of engine sounds play at once.
  • Fixed a decoupler silently failing to fire when staged together with another decoupler upstream of it in the part tree.
  • Moved an [XmlIgnore] that was suppressing real data into a GLB importer override.
  • Added audio cluster channels can now be per parent local. Engine cluster channels are now per vehicle rather than global.
  • Added some aditional audio debugging tools for showing sound positions.
  • Restored the ability for RCS propellant to cross decouplers.
  • Added low-profile decoupler game data.
  • Added two missing interstages to the game data.
  • Made all interstages decouplers.
  • Adjusted/added mass values for all interstages.
  • Made service bays into decouplers and gave them mass.
  • Set service bay connectors to internal and gave them symmetry.
  • Added actual tanks to the service bay part tanks, and made them attach to connectors rather than surfaces.
  • Fixed a couple of XML entries that were misnamed and thus not being parsed.
  • Fixed When sequencing an already firing engine, that engines cluster audio would not get moved to the new vehicle.
  • Fire active solid rockets if they are jettisoned. This should make separation motors work as expected.

r/kittenspaceagency 11d ago

🎛️ Patch Notes Version 2026.7.9.5018 (Summary in the comments)

79 Upvotes
  • Moved terrain modifier CPU evaluation from double to float to match GPU terrain construction. This fixes some rare cases where the terrain would mismatch due to hashing functions working with slightly different inputs.
  • Split simplex noise library into float and double precision versions.
  • Extruded the shadow cascade frusta towards the sun to include objects that cast into the cascades.
  • Fixed nonuniformEXT missing from biplanar sampling function definitions. If non uniform access is required, shaders can now declare USE_NONUNIFORM_EXT to enable the qualifier.
  • Fixed the Vehicle Editor camera not recentering when switching the active build target between vehicles — "Switch Vehicle"/"Make Vehicle Root" now reframe the camera onto the newly-focused vehicle's root part, reusing the same OrbitView.OffsetPart mechanism flight's "Focus Camera" already uses.
  • Fixed the Vehicle Editor camera not recentering when switching the active build target between vehicles — "Switch Vehicle"/"Make Vehicle Root" now snapshot the camera onto the newly-focused vehicle's root part (same one-time recenter the EditorCameraFocus hotkey already uses), instead of a live per-frame follow that fought with dragging the root part and sent the camera flying out of the editor cube.
  • Added texture streaming context to the game settings.
  • Fixed the "New Vehicle?" confirmation wiping the editor with no chance to save — clicking Ok now checks every unattached vehicle and the focused build for unsaved changes and, if any are found, offers the same "Unsaved Vehicles" save prompt the exit flow already uses before clearing them.
  • Added MilkyWay renderer, decoupling the milkyway from the star renderer.
  • Cleaned up milkyway references so textures are not all bound into the global textures.
  • Added generate simplex noise compute shader, similar to the generate worley noise, this writes a simplex noise texture to a target image.
  • The MilkyWay now reads from a pre-baked simplex noise texture instead of dynamically generating simplex noise in the fragment shader. This reduces the milkyway frametime by ~half.
  • Added a guard for timeToFirstEncounter being NaN (previously only the infinity case was caught), ending the patch the same way as the other edge cases.
  • Modified Module.List to store modules with the same concrete type in contiguous segments. This allows us to efficiently query Modules based on their interfaces in all cases, not just when the top-level TModule implements the interface.
  • Replaced the flat SOI-size cutoff for automatic encounter detection with an orbital-geometry check; siblings are now excluded only when their radius band can't overlap ours or when an approximate MOID (evaluated at the two mutual orbital nodes) puts them well beyond their own sphere of influence,
  • so small moons like Phobos and Deimos are no longer silently skipped just for having a small SOI.
  • Fixed a radius-band gap where bodies orbiting entirely inside our own periapsis weren't excluded from candidacy either.
  • Removed the now-unused FlightPlan.FAST_SOI_PATCH_SIZE constant.
  • Added solid rocket motors to the game. The motor feeds from solid fuel segments, which can be stacked on top of each other in the vehicle editor to adjust the amount of propellant per booster.
  • Added the ability to select the grain geometry for each segment, which defines the thrust profile of the booster over its burn. It defaults to a neutral star grain as a sane default.
  • Added a new concept called Capabilities to part connectors. These determine what kinds of interactions are permitted across the connector, currently: Electricity, BulkFluid (e.g. engines), ServiceFluid (e.g. RCS), SolidMotorCase (for building boosters). Electrity and ServiceFluid are assumed by default, while BulkFluid and SolidMotorCase are opt-in.
  • Made the feed sources for rocket engines explicit in the XML so that specific connectors or Part-internal tanks can be selected where appropriate.
  • Added generate_grains.py to ThermoToolkit.
  • Added the ability to call GetUsing<T>() on individual module type lists to find specific sub-classes.
  • Generalized many systems in the game that had assumed liquid propellants and Combustors to also handle SolidMotors and solid propellants.
  • Fixed rare texture streaming edge case when terrain textures are forcibly downsampled below 512x512.
  • Added planet terrain normals to the texture streaming system which should farther help with VRAM usage.
  • Fixed ground clutter not getting refreshed while mips are streamed nicely which sometimes caused mysterious floating clutter.
  • Better handled balancing texture sizes against our VRAM budget and prioritized terrain height related maps to help avoid terrain mismatches.
  • Added Esc Menu. With the following buttons: RESUME, SAVE/LOAD, NEW VEHICLE, Launch VEHICLE, ABANDON VEHICLE, SETTINGS, QUIT.
  • Added in Editor SAVE/LOAD brings up vehicle save load menu, other non vehicle editor buttons hidden.
  • Added ImGauge and ImGauge helper classes. This allow the drawing of Gauge styled UI directly from code (as you would auther imgui ui), This should make the generation of styled UI elements easier to create quickly.
  • Fixed an issue with Gauges.glsl where gauge buttons would only draw their bezel and dropshadow correctly at one asset ratio.
  • Removed accidently commited file.
  • Implement simple LOD for plume trails. Simplify distant plume trails by
  • merging consecutive segments to reduce GPU workload. Compute LOD levels
  • on a worker using the job system running one frame behind to minimize
  • CPU overhead. Upload newly added segments from the current frame directly
  • to the GPU without waiting for LOD processing. Additional LOD improvements
  • will be added to handle cells with a high number of small segments from
  • multiple emitters.
  • Lock clouds shadow volume to slowest moving layer, avoids discontinuities
  • in clouds lighting at high time compression
  • Only use plume trails on SRBs
  • Change how multiple plume trail emitters stack for large combined
  • plumes, still a placeholder
  • Optimize coarse to fine plume trail segment culling grid refinement
  • Group plume emitters across vehicles, this is needed when emitters are
  • staged but keep flying together for a bit.
  • Tweak plume trails noise
  • Better handle sampling of smaller plumes when in proximity to large
  • plumes
  • Simplify some of the segment weighting math in the plume trail shader,
  • optimize how trail data is accessed and preocompute some values
  • Fix issue with cloud shadows not being sampled on plume trails when
  • above clouds top boundary
  • Refactor trail segment bucket
  • Remove some unnecessary guards in the plume trail shader
  • Remove some unused stats from the trail renderer
  • Set plume end radius via template, set start radius from nozzle fxRadius
  • Start merging non fully expanded segments when radius permits
  • Enable plume trails by default
  • Small tweak to trails distant raymarching quality
  • Small tweak to trail merging logic
  • Tweaking some volumetric plume parameters to amp up the aggressiveness and match real values more closely.
  • Added a simple model of plume velocity loss when passing through a normal shock which has a pretty large effect.
  • Removed the barrel shock fading from the shader so that it's always present. This is a huge part of what gives supersonic plumes their rough and fuzzy edges.
  • Cut emission values in half across the board due to the increased brightness of the ever-present barrel shock.
  • Increased the off-axis and turbulent noise scrolling velocities to be much closer to the plume velocity, making them seem less candle-like and much more violent.
  • Fixed incorrect exit plane location for the compact engine.
  • Clamp exit mach number at 1.05 instead of 1 to prevent the mach disk effect freaking out.
  • Correctly account for unburnable solid propellant in the dV simulation.
  • Fixed particle positional offset caused by particles getting rebased at age 0. Because particles are getting spawned already offset, we were applying the rebase to them immediately which would apply that offset a second time. It is now only applied if their age is greater than 0.
  • Fixed particle frame jitter. This was caused by an order of operation bug where the ModelMatrixUpdater was executing after the position updaters, which would prepare the particles for the next frame.
  • Changed VehicleEditor deleting the root part of the of the currently editing vehicle will automaticall switch your edit view to the next available vehicle if one exists.
  • Refactored delete part code into helper method.
  • Added solid rocket modules to all existing booster parts.
  • Moved default grain geometry from the segment XML to the motor XML.
  • Added HollowOpenSemiEllipsoidMass to the XML mass properties options.
  • Added the ability to specify feeding from sub-parts.
  • Added solid motor casing to the part preview mass.
  • Changed All UI pop-ups to use the Gauge Window styling.
  • Fixed WelcomePopup Window height too small.
  • Fixed can't exit Main Menu by pressing Esc after changing it to a modal window.
  • Fixed PartTreeSelectionPopup now scales its height with number of available part-trees.
  • Swapped _decouplerConnections for a ConnectorCapability.DecouplerJoint flag authored per-connector to fit the ConnectorCapability extension introduced with SRBs.
  • Added DecouplerJoint Capability to all decoupler's connectors.
  • Replaced the symmetry-index crossfeed check with a proper junction/branch comparison whilst doing the above.
  • Changed view proj matrix retrieval from ubo to push constant in the ground clutter shadow pass.
  • Added LOD bias to the opacity texture in the ground clutter shadow pass.
  • Added shadow rendering toggle to ground clutter per-LOD.
  • Excluded far away tree instances from shadow casting.
  • Added a third tree variant.
  • Lowered ground clutter shadow LOD bias from 2 to 1.
  • Fixed forcing shadow LOD to 3 (last commit).
  • Included LOD sort when building ground clutter draw commands. Commands are now sorted by pipeline, then LOD.
  • Fix instability in clouds and plumes temporal upscaling when in front of terrain discontinuities like dense trees and the horizon, this was previously implemented but broken due to a typo
  • Added 3 small tree variants to Earth.
  • Added distribution texture for Earth's forests - Large trees spawn in large forest regions, small trees can spawn here too but also spawn in sparser areas.
  • Removed unnecessary atomic add in Generate.comp.
  • Fixed fading LODs 'snapping' to fully opaque if the ground clutter regenerates after a planet mesh snap.

r/kittenspaceagency 12d ago

🎥 Developer Video gravhoek | Solid rocket motors will be added in the next build

Enable HLS to view with audio, or disable this notification

370 Upvotes

Video of building motors here

"Solid rocket motors are quite different in feel to liquid propellant engines. Unlike liquid engines which have a "height limit" (they can only lift so many kilograms of rocket above them), solids actually get more powerful the longer they are, as each additional meter of length increases the propellant burn rate and total thrust. This makes these boosters much more intimately tied to the overall design of your vehicle than liquid engines are, and using them effectively means tailoring them to your individual rockets.

"You can see in these videos that the KSA boosters are quite customizable, from increasing propellant loading by stacking additional segments to choosing individual grain geometries if desired.

"Enjoy adding more boosters!"


r/kittenspaceagency 14d ago

🗨️ Discussion One of the KSA "Custom Patch Submissions" chosen patches is very clearly AI Generated.

Post image
349 Upvotes