# 4.5 Release is Imminent

**URL:** <https://forum.grid.space/t/4-5-release-is-imminent/2868>\
**Category:** Kiri:Moto\
**Created:** [December 13, 2025, 2:25am UTC](https://forum.grid.space/t/4-5-release-is-imminent/2868 "2025-12-13T02:25:37Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![stewart](https://forum.grid.space/user_avatar/forum.grid.space/stewart/32/21_2.png) [@stewart](https://forum.grid.space/u/stewart)\
**Post date:** [December 13, 2025, 2:25am UTC](https://forum.grid.space/t/4-5-release-is-imminent/2868/1 "2025-12-13T02:25:37Z")

</div>

Major feature work is complete. The next week will be devoted to the ruthless hunting and killing of bugs. PLEASE help me in this task by hopping onto the [dev release server](https://app.grid.space/kiri/) and putting Kiri through its paces. A short summary of the work that went into this:

_137 commits_

**CAM Path Planning Refactor**

The routing and path generation system underwent a complete overhaul, enabling significantly improved collision detection, smoother universal ease-down moves, and better tool shadow analysis. This foundational work makes operations safer and more reliable, particularly for complex geometry. The refactor replaced zMax with zSafe throughout for clearer safety height semantics.

**New “Area” Operation**

A unified operation type that consolidates trace, clear, outline, and surface machining into one interface. Includes linear surface machining with constraint angles, and full tab support across all modes. This simplifies workflow by reducing the number of operations needed for complex parts.

**Taper Ball Tool Support**

Complete implementation including tool editor with visual preview, accurate profile generation for collision detection, and 3D animation support. Tapered ball nose endmills are now fully supported throughout the toolchain.

**Enhanced Tab System**

Tabs now properly integrate with travel boundaries, merge when overlapping, and work correctly with indexed rotary operations. Improved handling ensures tabs are respected during ease-down moves and thru-cuts.

**4th Axis Improvements**

G-code parsing now includes rotational interpolation for smooth A-axis visualization. Added manifold-based indexed animation for better accuracy and lathe axis reset macros.

**Camera Controls**

Runtime switching between orthographic and perspective projection with preserved zoom preferences and corrected aspect ratio handling.

**Roughing & Trace Operations**

New flat passes option for horizontal roughing strategies. Inside/outside trace now supports open polylines with improved dogbone handling.

**Technical Notes**

The path planning refactor is the most significant change in this release, touching routing, pocketing, and safety moves throughout the CAM system. Users should test thoroughly with air cuts, particularly on complex indexed parts.

---

<div class="post-metadata">

**Author:** ![pmc](https://forum.grid.space/letter_avatar_proxy/v4/letter/p/e9c0ed/32.png) [@pmc](https://forum.grid.space/u/pmc)\
**Post date:** [December 13, 2025, 5:54pm UTC](https://forum.grid.space/t/4-5-release-is-imminent/2868/2 "2025-12-13T17:54:09Z")

</div>

When using the dev server, is there a lazy way to import parts from onshape?

I thinking of using the onshape-integrated k:m to import from onshape, then export the workspace and import that to the dev server. Do I overlook an easier way? Does k:m just pull a STEP export or some such that I can produce directly from onshape?

---

<div class="post-metadata">

**Author:** ![stewart](https://forum.grid.space/user_avatar/forum.grid.space/stewart/32/21_2.png) [@stewart](https://forum.grid.space/u/stewart)\
**Post date:** [December 13, 2025, 6:44pm UTC](https://forum.grid.space/t/4-5-release-is-imminent/2868/3 "2025-12-13T18:44:02Z")

</div>

when KM runs inside Onshape, it calls the api to get the equivalent of STL vertex soup. so you could export STL from Onshape then import that into KM on dev. or start with a workspace exported from KM in Onshape as a starting point then just pull in STLs

---

<div class="post-metadata">

**Author:** ![pmc](https://forum.grid.space/letter_avatar_proxy/v4/letter/p/e9c0ed/32.png) [@pmc](https://forum.grid.space/u/pmc)\
**Post date:** [December 13, 2025, 7:43pm UTC](https://forum.grid.space/t/4-5-release-is-imminent/2868/4 "2025-12-13T19:43:02Z")

</div>

K:M/Onshape/STL question in a new topic.

---

<div class="post-metadata">

**Author:** ![pmc](https://forum.grid.space/letter_avatar_proxy/v4/letter/p/e9c0ed/32.png) [@pmc](https://forum.grid.space/u/pmc)\
**Post date:** [December 13, 2025, 7:56pm UTC](https://forum.grid.space/t/4-5-release-is-imminent/2868/5 "2025-12-13T19:56:16Z")

</div>

The “area” op looks interesting. This error message suggests in might be more interesting than it looks:

![Screenshot 2025-12-13 13.50.43](https://forum.grid.space/uploads/default/original/2X/6/66ed1306c7d004b0dab493e8a0b1ae74334fa292.png)

But I don’t see any ‘planar’ or ‘radial’ options.

Also, the selected features are surfaces and it’s not clear what ‘tracing’ means in that context.

[area-invalid-mode.kmz](https://forum.grid.space/uploads/short-url/r0QFYoyIuJxmaAMSmcxgvhveHU4.kmz) (177.1 KB)

---

<div class="post-metadata">

**Author:** ![stewart](https://forum.grid.space/user_avatar/forum.grid.space/stewart/32/21_2.png) [@stewart](https://forum.grid.space/u/stewart)\
**Post date:** [December 13, 2025, 9:34pm UTC](https://forum.grid.space/t/4-5-release-is-imminent/2868/6 "2025-12-13T21:34:58Z")

</div>

good catch. I forgot to update a package version dependency. fixed.

when you trace a surface, you are using the outline of the selected area.

this new area operator (and even just the surfacing options) are probably worthy of their own entire video. just the coding / testing is taxing. video production and documentation is a whole next level of effort. I would need a team.

in your workspace, I noticed you selected the vertical surface. you want to use the trace option for that. surfacing is for organic or curved faces with z normal facing up, not vertical walls.

---

<div class="post-metadata">

**Author:** ![stewart](https://forum.grid.space/user_avatar/forum.grid.space/stewart/32/21_2.png) [@stewart](https://forum.grid.space/u/stewart)\
**Post date:** [December 13, 2025, 10:02pm UTC](https://forum.grid.space/t/4-5-release-is-imminent/2868/7 "2025-12-13T22:02:22Z")

</div>

yes, technically that face is not vertical. surfacing could work with micro stepping. btw, notice anything different with this?

 ![Screenshot 2025-12-13 at 5.01.16 PM](https://forum.grid.space/uploads/default/original/2X/0/0f683d3f414fbd2cfd4fca0d894f3003e5313551.jpeg)

---

<div class="post-metadata">

**Author:** ![pmc](https://forum.grid.space/letter_avatar_proxy/v4/letter/p/e9c0ed/32.png) [@pmc](https://forum.grid.space/u/pmc)\
**Post date:** [December 13, 2025, 10:03pm UTC](https://forum.grid.space/t/4-5-release-is-imminent/2868/8 "2025-12-13T22:03:29Z")

</div>

Yay – linear with step angle on selectable surfaces looks great!

The selected surface in the export is nearly but not quite vertical. Linear surfacing actually handles it reasonably well when the step angle is 45deg and the selection either includes the pocket floor or is expanded. Not ideal because it’s not the idea tool for the job, but it doesn’t choke either.

Offset also works when the area is expanded. But with the narrow area selected in the export, it complains:

![Screenshot 2025-12-13 15.40.08](https://forum.grid.space/uploads/default/original/2X/c/c0e5d1fb31e7228add4ba1549f900f1d2ea8dc8f.png)

---

<div class="post-metadata">

**Author:** ![stewart](https://forum.grid.space/user_avatar/forum.grid.space/stewart/32/21_2.png) [@stewart](https://forum.grid.space/u/stewart)\
**Post date:** [December 13, 2025, 10:05pm UTC](https://forum.grid.space/t/4-5-release-is-imminent/2868/9 "2025-12-13T22:05:34Z")

</div>

workspace? I’m not immediately able to replicate.

when you are surfacing using the `area` operator, you are using the new `webgpu` code… it’s offloading those calculations to your graphics card

---

<div class="post-metadata">

**Author:** ![pmc](https://forum.grid.space/letter_avatar_proxy/v4/letter/p/e9c0ed/32.png) [@pmc](https://forum.grid.space/u/pmc)\
**Post date:** [December 13, 2025, 10:10pm UTC](https://forum.grid.space/t/4-5-release-is-imminent/2868/10 "2025-12-13T22:10:41Z")

</div>

Same workspace with ‘pattern’ set to ‘offset’.

At least with my gfx (neat capability).

---

<div class="post-metadata">

**Author:** ![stewart](https://forum.grid.space/user_avatar/forum.grid.space/stewart/32/21_2.png) [@stewart](https://forum.grid.space/u/stewart)\
**Post date:** [December 13, 2025, 11:10pm UTC](https://forum.grid.space/t/4-5-release-is-imminent/2868/11 "2025-12-13T23:10:53Z")

</div>

it’s attempting to trace a path when none exists because offset in this scenario has no room to offset (it’s done in XY not some magical XYZ). i’m going to be adding a 3rd surfacing mode specifically for vertical and very steep walls.

---

<div class="post-metadata">

**Author:** ![pmc](https://forum.grid.space/letter_avatar_proxy/v4/letter/p/e9c0ed/32.png) [@pmc](https://forum.grid.space/u/pmc)\
**Post date:** [December 14, 2025, 12:03am UTC](https://forum.grid.space/t/4-5-release-is-imminent/2868/12 "2025-12-14T00:03:53Z")

</div>

> [@stewart](#):
>
> it’s attempting to trace a path when none exists

Yes. I sent that in haste and forgot to make clear that the point was just the error, not that I was expecting a path.

---

<div class="post-metadata">

**Author:** ![pmc](https://forum.grid.space/letter_avatar_proxy/v4/letter/p/e9c0ed/32.png) [@pmc](https://forum.grid.space/u/pmc)\
**Post date:** [December 14, 2025, 12:32am UTC](https://forum.grid.space/t/4-5-release-is-imminent/2868/13 "2025-12-14T00:32:31Z")

</div>

> [@stewart](#):
>
> notice anything different with this?

Oh. I completely didn’t notice that at all. ☹

Arcs around corners! cool. 🙂 That was quick (and lots of other work today too).

I sure hope that plays well with ‘arc output’ because pushing ~100 ~10 micron segments thru 115.2kbps smells like trouble (I didn’t actually do the math).

But I don’t know because trying to export with ‘arc output’ enabled gets:

![Screenshot 2025-12-13 18.16.54](https://forum.grid.space/uploads/default/original/2X/6/6549e98281cc3cec1a317e31c4c6cde47cc76230.png)

at least for this workspace:

[no-arc-output.kmz](https://forum.grid.space/uploads/short-url/9sf0xpLs72bUWq76OLKtuTmP8TH.kmz) (161.1 KB)

Nevertheless, ‘arc tolerance’ and ‘arc resolution’ fields look encouraging!

---

<div class="post-metadata">

**Author:** ![pmc](https://forum.grid.space/letter_avatar_proxy/v4/letter/p/e9c0ed/32.png) [@pmc](https://forum.grid.space/u/pmc)\
**Post date:** [December 14, 2025, 12:52am UTC](https://forum.grid.space/t/4-5-release-is-imminent/2868/14 "2025-12-14T00:52:07Z")

</div>

> [@stewart](#):
>
> New flat passes option for horizontal roughing strategies

Sometimes I don’t see what I’m looking at. At the moment, I’m not seeing what this is. ?.

====================

@stewart editing to add to earlier reply because forum forbids \>3 consecutive replies…..

**Contour weirdness**

This looks like some strange things happening…

Contour, curves only:

 ![Screenshot 2025-12-14 17.33.10](https://forum.grid.space/uploads/default/original/2X/c/cfbae2b7821eef00bbffff5fd643545f2fde8fc7.png)

(The `clip.to` and green bounding box look interesting…)

With `curves only` selected:

- lots of flat area included in the slicing
- but not all flat area
- vertical walls included too, while max angle = 80deg (not so obvious in this view)
- vertical drops cut off lower parts of sloped surfaces
- vertical drop/slope cut happens above (i.e. not obviously correlated with) the lower flat level

Lots of Z lift isn’t wrong, and it better than crashing, but isn’t wonderful:

 ![Screenshot 2025-12-14 17.34.11](https://forum.grid.space/uploads/default/original/2X/3/35a6c4286b234243d585e85edc91a7658fb6168e.png)

(also shows vertical walls better)

Then in simulation:

 ![Screenshot 2025-12-14 17.35.01](https://forum.grid.space/uploads/default/original/2X/3/330a585877a559ef441d579cdc960613c2944b09.png)

The sim, at 1x, takes time that appears to correlate with cutting the flat areas, but only cuts on sloped surfaces (not horiz or vert) appear in the simulated stock. (The bottoms of the four small slots are not flat so it makes sense for K:M to contour there even if the results of X contouring Y-oriented slots isn’t wonderful)

The workspace:

[contour.kmz](https://forum.grid.space/uploads/short-url/9Jp460pLrvjCg2hqwTiuJYyRqsJ.kmz) (312.4 KB)

---

<div class="post-metadata">

**Author:** ![stewart](https://forum.grid.space/user_avatar/forum.grid.space/stewart/32/21_2.png) [@stewart](https://forum.grid.space/u/stewart)\
**Post date:** [December 15, 2025, 12:13am UTC](https://forum.grid.space/t/4-5-release-is-imminent/2868/15 "2025-12-15T00:13:31Z")

</div>

this is what I get with `curves only` enabled. enable `web gpu` and retry. the gpu code is generally more accurate (and far faster) for contouring. it will also be the only code path for contouring in some future release. you may also want to enable `inside only` for this model

I will soon be simplifying the code base by removing redundant implementations from a time when some browsers (looking at you webkit) did not, for example, support nested workers.

the jumps up at the edges are phantom intersections from floating point instability. will see if I can clean that up.

 ![Screenshot 2025-12-14 at 7.09.19 PM](https://forum.grid.space/uploads/default/original/2X/b/b5f5d1566b46ecafff17efb745dccc8fd6b62892.jpeg)  
 ![Screenshot 2025-12-14 at 7.09.09 PM](https://forum.grid.space/uploads/default/original/2X/0/06add7ab3643c0373d7fca30041c6daa40ee4813.jpeg)

---

<div class="post-metadata">

**Author:** ![pmc](https://forum.grid.space/letter_avatar_proxy/v4/letter/p/e9c0ed/32.png) [@pmc](https://forum.grid.space/u/pmc)\
**Post date:** [December 15, 2025, 12:52am UTC](https://forum.grid.space/t/4-5-release-is-imminent/2868/16 "2025-12-15T00:52:50Z")

</div>

> [@stewart](#):
>
> enable `web gpu` and retry

Yes, that worked.

I didn’t catch that was an option to enable. Also `web asm` and `threaded`. K:M just got a lot faster 🙂

---

<div class="post-metadata">

**Author:** ![meddesign](https://forum.grid.space/letter_avatar_proxy/v4/letter/m/d6d6ee/32.png) [@meddesign](https://forum.grid.space/u/meddesign)\
**Post date:** [December 15, 2025, 5:18pm UTC](https://forum.grid.space/t/4-5-release-is-imminent/2868/17 "2025-12-15T17:18:26Z")

</div>

outline not going through v4.5….4.41 works if I import to v4.5 nada

[OUTLINEV 4.4\_RH\_61 (5).kmz](https://forum.grid.space/uploads/short-url/dZl5oIWH8v0Uq9j3cETLufM0vcf.kmz) (216.3 KB)

[OUTLINE V4.5\_RH\_61.kmz](https://forum.grid.space/uploads/short-url/xvZxm4gGRgVz2XoP7bshQNGnAEP.kmz) (261.8 KB)

missing Z through in limits

---

<div class="post-metadata">

**Author:** ![stewart](https://forum.grid.space/user_avatar/forum.grid.space/stewart/32/21_2.png) [@stewart](https://forum.grid.space/u/stewart)\
**Post date:** [December 15, 2025, 5:33pm UTC](https://forum.grid.space/t/4-5-release-is-imminent/2868/18 "2025-12-15T17:33:01Z")

</div>

`Z Thru` was removed and now `Z Bottom` is fully in control. there were a ton of corner cases and conflict between those two. Historical context: z thru was a hack way before z bottom was added.

 ![Screenshot 2025-12-15 at 12.31.00 PM](https://forum.grid.space/uploads/default/original/2X/f/fc3ff1053857f786cc4de16158ce125e9023e5b8.jpeg)

---

<div class="post-metadata">

**Author:** ![meddesign](https://forum.grid.space/letter_avatar_proxy/v4/letter/m/d6d6ee/32.png) [@meddesign](https://forum.grid.space/u/meddesign)\
**Post date:** [December 15, 2025, 6:23pm UTC](https://forum.grid.space/t/4-5-release-is-imminent/2868/19 "2025-12-15T18:23:50Z")

</div>

was able to get to work for outline…a little fiddle to jockey step down to mesh with z bottom to get one pass

however figured would check “rough” ….and not able to make it work with same settings

[rough 4.5\_RH\_61.kmz](https://forum.grid.space/uploads/short-url/i586y5XZ7mzDpQ4X17kC4InDamw.kmz) (359.3 KB)

[outline-RH\_61.kmz](https://forum.grid.space/uploads/short-url/qhg4uXaNGlrQOGb59B9JN3Zw3mj.kmz) (321.9 KB)

---

<div class="post-metadata">

**Author:** ![stewart](https://forum.grid.space/user_avatar/forum.grid.space/stewart/32/21_2.png) [@stewart](https://forum.grid.space/u/stewart)\
**Post date:** [December 15, 2025, 6:54pm UTC](https://forum.grid.space/t/4-5-release-is-imminent/2868/20 "2025-12-15T18:54:43Z")

</div>

thanks. fixed on the dev server.

[Next page](https://forum.grid.space/t/4-5-release-is-imminent/2868.md?page=2)
