Please sign in to access this page

human benchy

human benchy

23 devlogs
55h 6m
•  Ship certified
Created by nosrep

draw a benchy like a 3d printer

Timeline

Ship 1

0 payouts of shell 0 shells

nosrep

8 days ago

nosrep Covers 23 devlogs and 55h 6m
nosrep
nosrep
1h 50m 8 days ago

some cleanups, bugfixes, nice background, deploy

Update attachment
nosrep
nosrep
3h 27m 9 days ago

fiddled with endscreen and added download button!

Update attachment

ramer-douglas-peucker smoothing on the shape! pretty happy with how it looks.

Update attachment

spent some time trying to smooth out the shape, but i think i need to reimplement ramer douglas peucker to make it actually look normal.

Update attachment

some miscellaneous polishing, like homescreen improvements and brush overlay. we have real stl rendering now! with synched cameras

Update attachment

what did I do?...
I added a brush size slider, theming, may or may not have fixed some bugs...
Also added a proper homepage with file loading. may pretty it up later

Update attachment

fixed the randomly disappearing benchy layer! turns out it was rdp line simplification being bad because instead of finding distance from line segment to point i did line to point. not good. also found some ghost shapes the slicer found that are just like one point but i honestly have no idea how they are made and they don't affect anything for now because the slicer is only for drawing. very annoying though. could be evidence of a larger issue

Update attachment

use marching squares instead. this should quash a bunch of the weird outlining issues because it outlines between points instead of on them directly. still some issues left: threejs doesn't like rendering holes or some reason and for some reason one layer at 50 layers just doesn't show up

Update attachment

improved rednering a bit, added panning, fixed outstanding bugs. as a result it's now incredibly slow to calculate the outlines per layer, i'll need to fix later. i added a cheat mode so here's a detailed 50 layer benchy

Update attachment

tried to fix scaling and got more bugs as a reward. i hate bugs. insects

Update attachment

hunted down the polygonization issue, the source was in the slicing part; code for intersection between triangle and plane didn't work properly when the triangle was touching the plane exactly but only at one point, and also intersected the plane.

Update attachment

BENCHY TIME BENCHY TIME BENCHY TIME BENCHY TIME BENCHY TIME

Update attachment

added code to polygonize the drawing. its untested so far. probably broken. speaking of broken, slicing! edge case when slicing middle of benchy. will investigate later, this is weird

Update attachment

some progress on polygonization code. why doesnt this exist already i dont wanna write this man

Update attachment

flood fill! scanline algo. also fixed layout more

Update attachment

spent way way way too long trying to figure out how to get the square canvas to fit within width and height simultaneously. at this point I don't think its a thing you can do in css only. ended up having a js function constantly watching window resizes and changing the class of the square depending on whether it needed to be width-limited or height-limited. Also i did the drawing thing and it's path based so no loose circles. Next up is flood fill

tried to get drawing working (good!) then tried to make it path based instead of just spamming circles. its bad. real bad.

Update attachment

wasm done, it can generate layers for arbitrary stls now

implemented ramer douglas peucker with epsilon 1e-4 for the segment simplification. shrunk the point count of the first layer from like 4k+? to less than 900

Update attachment

implemented proper path creation

Update attachment

now that's what i call a benchy! primitive drawing thing to preview what horrible things my slicer has created.

Update attachment

slicer thing done. i use air quotes because it probably doesn't work; gonna need to write a frontend to view it next

Update attachment

got stl parsing done. surprisingly simple format, easy to parse with nom

Update attachment