If you have a programmer’s mindset, OpenSCAD is wonderful!!! It does require some spatial thinking but can do some amazing things and it’s free!!! The cheat sheet shows all the functions and each one has good examples with graphic results. Setting the $fn to a high value like 200 makes for smoother objects like circles, and minding the placement of semicolons is important. There are functions that easily generate complex structures, read the examples and learn!!!
And it all renders nicely on your laptop, with ability to rotate and zoom for details.