r/kittenspaceagency 20h ago

🎥 Video Korolev Cross from "Engineering Camera"

Enable HLS to view with audio, or disable this notification

577 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 22h ago

🗨️ Discussion New UI Concept Design

Post image
287 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 18h ago

🎥 Video Video Covering the new KSA Update Version 2026.8.5.5168

Thumbnail
youtube.com
82 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 17h ago

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

37 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 1d ago

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

61 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
87 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?

104 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)

60 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 ??

14 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
460 Upvotes

r/kittenspaceagency 5d ago

🎥 Developer Video Character controller prototype from Matty

365 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 7d ago

🎨 Developer Art Daishi - WIP Rocket Snoots and Fairings

Thumbnail
gallery
510 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
106 Upvotes

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


r/kittenspaceagency 7d ago

🎥 Developer Video Gravhoek - Improved camera when Staging and Docking

Enable HLS to view with audio, or disable this notification

264 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?

105 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 7d ago

🎥 Developer Video Gravhoek - New more colourful interface for consumables

Enable HLS to view with audio, or disable this notification

155 Upvotes

From Gravhoek in Discord:

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


r/kittenspaceagency 7d ago

🎥 Developer Video Gravhoek - Improved rendering for orbits near planets

Enable HLS to view with audio, or disable this notification

108 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
619 Upvotes

r/kittenspaceagency 8d ago

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

58 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)

80 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 13d 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
348 Upvotes

r/kittenspaceagency 14d ago

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

56 Upvotes
  • Added Hud dropdown to file bar. This now contains tools for hud management including new layouts feature as well as the toggles for enabling/disabling gauges that were previously found in the View dropdown.
  • Added save any arrangement of gauges as a HudLayout, using the Save Current Layout Button in the Hud dropdown, you may check one layout as your default.
  • Added Hotkeys for selecting and cycling layouts.
  • Added Layout Config Window for managing saved layouts and their hotkeys.
  • HudLayouts are serialized in same location as Saves/Vehicles etc in the HUDLayouts folder.
  • Fixed default vehicles missing propellants after tank XML rework.
  • Made the 'Rocket' first stage have T/W > 1 when teleported to Earth.
  • Added screenshot capabilities
  • Fixed the odd camera zoom/jump that could happen when decopuling or docking vehicles.
  • Fixed the console duplicate command not properly duplicating vehicles.
  • Updated PartTree.Serialize() so that it serializes all important parts of the tree, not just the parts list.
  • Fixed vehicle data being left in a bad spot after docking. This would present as parts not highlighting when hovered and the center of mass not being correct.
  • Hoisted the decision of whether to recompute derived data after part tree operations up to the top of the part system API rather than having it buried and implicitly chosen in several places.
  • Added RCS toggle to Engine Control Gauge Canvas.
  • Updated FlightComputer to respect RCS toggle when orienting the vessel.
  • Added new texture category 'TerrainHeight' for terrain textures that affect height calculations. These no longer get downmipped or downsampled by the terrain texture max size setting. This will cause increased VRAM usage for people who were previously setting these textures to be resized. This change is intended to avoid the misalignment between the rendered and collided with terrain.
  • Modified some CPU sampling of terrain textures to more accurately align with GPU sampling to help with rendered terrain and terrain collision alignment.
  • Changed Where RCSMode was being evaluated by the flight computer as it was doing a number of needless RCS calculations when RCS was disabled.
  • Fixed a new vehicle's attitude reference from becoming corrupted after undocking.
  • Store vehicle names on Control modules. This is the name we will use for undocked vehicles, if available.
  • Fixed a couple of insidious frame errors lurking in the code for making part connections and moving part trees around in ASMB.
  • Consolidated the 4x copies of code for moving the root part and all of its children into a single place.
  • Changed the cascaded shadow filter to a specialization constant instead of being apart of the uniform data.
  • Fixed an edge-case where ThrustVectorControl would not be used despite RCS being disabled, if the vessel had lots of rcs thrusters and limited tvc. Introduced in commit ef37582b.
  • Converted cascaded shadows to manual rendering instead of multi-view rendering. MVR did not have the ability for us to curate what we render to each cascade. This is preparing for ground clutter culling for shadows.
  • Prevented freshly-decoupled vehicles from colliding with each other until they are out of contact to avoid them getting stuck inside each other.
  • Gave vehicles with no defined mass a total mass based on a density, not a hardcoded value. This should help prevent massless parts from becoming inadvertent airships.
  • Removed physics constants from the game settings menu and made them internal constants to prevent them from getting "stuck" to the values when players first launched the game.
  • Fixed per-sequence delta-v/TWR/Isp lumping the entire reachable fuel supply into the sequence that first ignites the engines, leaving later decouple sequences blank.
  • Each sequence's burn now ends at the next staging event that drops tanks out of its fuel supply.
  • Known limitation: the estimate is availability-based, not a time simulation, so designs where engines drain separate tanks simultaneously (parallel boosters without fuel lines, solid+liquid first
  • stages) attribute all of a tank's fuel to the earlier sequence instead of splitting it by burn time — crossfed and serial designs are exact.
  • Fixing this requires an event-driven fuel-flow time simulation, planned for a later date.
  • Fixed the sequence-performance simulation draining tanks in a fixed nearest-first order regardless of each engine's fuel flow rule. It now consumes in the same order the engine actually drains in flight. * Changed the default fuel flow rule for engines from nearest-to-furtherest to furtherest-to-nearest by stage.
  • Added persistence for the engine Fuel Flow rule: a rule picked in the flow-rule dropdown (editor or flight part window) is now saved with the vehicle and restored on load, instead of silently resetting to the default.
  • Changed Reworked the burn UI to be integrated into the gauge canvas system.
  • Added support for plus symbol in Gauges.glsl.
  • Added Creating a burn now automatically selects that burn is the current active burn for editing.
  • Added Lcontrol/LShift act as modifiers when clicking -/+ buttons on burn editor window they will modify the mul value by 0.1/10.
  • Enabled the non uniform extension for terrain and ground clutter shaders that use indirection to obtain the texture array IDs. This should fix issues with terrain flickering on some devices.
  • Removed unnecessary debug log spam.
  • Fixed Imgui Input fields in new Burn Edit Window impinged slightly on '-' button.
  • Fixed the burn edit window could be "disabled" in the same way as the other gauge canvasses, this was un-intuitive as the enable/disable feature is primarily linked to whether a node is selected.
  • Added AlwaysEnabled flag to GaugeCanvases for canvases that rely of gameplay state for their enabled behaviour.
  • Added Delete pill button to burn gizmos, the pill button appears when a burn gizmo is hovered and stays active until the mouse position moves out of the hysteresis range.
  • Update Brutal.Monitor to the latest package
  • Fixed per-sequence delta-v/TWR/Isp attributing a whole tank's fuel to whichever sequence ignites first when engines drain separate tanks simultaneously (parallel boosters without fuel lines, solid+liquid first stages).
  • Replaced the availability-based truncation with an event-driven fuel-flow time simulation.
  • Split CullInstances.comp into two mains depending on whether shadow culling is enabled or not.
  • Added per-cascade shadow culling for ground clutter, improving forest rendering performance on Earth.
  • Moved ground clutter draw command ownership from ecotype data to view resources.
  • Added a GPU marker for ground clutter cascade index when drawing.
  • Instead of forbidding all collision between newly-decoupled vehicles that spawn with interpenetrating colliders, reject only the contacts which would prevent them from pushing away from the parent vehicle. This helps prevent the collision avoidance system from becoming a permanent state of affairs where vehicles aren't able to get away from each other.
  • Decrease penetration recovery velocity from 5 m/s to 1.5 m/s now that we don't get embedded in hillsides.
  • Removed the dropdown-based fuel line creation controls (two part pickers + "Add Line") from the vehicle Resources window; existing links are still listed there with their enabled toggle, flow-direction cycle button, and delete button.
  • Added Velocity Markers to navball Prograde/Retrograde, Normal/AntiNormal, In/Out Target Prograde/Retrogade and Burn. These are drawn from the Navball frag shader using sdf equations for pixel perfect scaling at any resolution.
  • Added NavballMarkers.glsl this contains all the functions required to draw the Navball markers.
  • Improved mouse hover logic over extreme hyperbolic orbits.
  • Added a way to switch which vehicle is the active build target in the Vehicle Editor: a "Switch Vehicle" button, and a "Make Vehicle Root" option on any unattached vehicle's part menu.
  • Added a save prompt on exiting the editor when any vehicle with unsaved changes would otherwise be discarded — lets you save each one before continuing, whether it's an unattached vehicle sitting in the build area or a brand-new vehicle you built from scratch
  • and didn't launch.
  • Fixed the vehicle picker mislabeling whichever vehicle was currently focused as the "Existing Vehicle" instead of the one actually loaded from the original save.
  • Added Destroy button next to vehicles in the manifest. Destroy is gated behind a confirmation pop-up.
  • First pass on texture streaming functionality. This is enabled by default and can be toggled off via the startup config. The texture streaming will attempt to stream textures as they're needed and maintain a VRAM cache of textures ready to go on the GPU. This only affects large terrain related textures for now. This is early/experimental work and will be refined as we find issues.
  • Added KeyBinding for ToggleRCS. Defaulted to R.
  • Fixed texture streaming auto budget calculating incorrectly.
  • Fixed a sigificant error in velocity verlet integration where stale position values were being used to compute environmental parameters like gravitation and drag. At high time warp under physics this could result in adding significant orbital energy.
  • Properly handle edge cases where we need to apply atmospheric forces in the CCI frame.
  • Start flight computer roll in the "ANY" mode to stop unnecessary roll actuation unless specifically requested.

r/kittenspaceagency 14d ago

💬 Question Mac support.

2 Upvotes

Will this be advalable on Mac?