The mechanism combines a cylindrical cam with linear motion constraint all on the same cylinder.
The main pieces besides the screw are shown below. On the left is the linear constraint mechanism, which has 6 rollers in it. In the center is the "nut" which has two cam followers pointing radially inwards. The cam followers engage with the spiral slot around the screw. On the right and left of the nut are bearings which take the thrust load from the screw, and constrain the nut. On the right is a cap, which just supports one of the nut bearings. It threads on to the linear mechanism, sandwiching the nut.
A better view of how the linear motion constraint works. 3 V-grooves go down the length of the screw. 6 plastic rollers on bearings ride in the V-grooves, preventing the screw from rotating or tilting:
Below you can see the makeshift cam followers inside the nut. Each cam follower is a dowel pin pressed into a pair of flanged bearings. For a "real" version of this I'll need to come up with something less janky, but this was good enough to check that the mechanism actually worked.
The linear constraint rollers were machined on the Tiny Lathe. I used a diamond needle file to hand-grind a form tool out of an HSS blank. The whole roller profile was turned in one pass by plunging the form tool in a set depth. The bore for the bearings was also done in one pass, by offsetting the tailstock to one side, and boring it out with a ballnose end mill in the drill chuck. Delrin is soft enough that you can get away with stuff like this.
Here's a picture of the form tool next to one of the rollers in the assembly:
The screw CAD was generated by creating a CSV of coordinates in MATLAB, importing it as a spline into SolidWorks, and sweep-cutting a small-diameter cylinder through a hollow tube, following the spline. Kind of a finicky process, but it works. If I decided to change the profile later on, I can replace the spline points with new set, and most of the dependent features are able to regenerate.