I Made a 3D Modeler, in C, in a Week
ฝัง
- เผยแพร่เมื่อ 1 พ.ค. 2024
- ShapeUp source code, demo, and more: www.danielchasehooper.com/post...
Daniel’s Twitter: / danielchooper
ShapeUp was demoed in the Handmade Network Wheel Reinvention Jam Recap and at Handmade Seattle. ShapeUp was #1 on HN on May 5, 2024. - วิทยาศาสตร์และเทคโนโลยี
Demo, Source Code, and more info about ShapeUp: danielchasehooper.com/posts/shapeup/
looks like Womp3D
Is there a way to export?
Greetings Mr. Hooper. I felt really inspired with the simplicity of your modeling software to a point that I want to try it myself. Unfortunately, I don't have enough knowledge on computer graphics with C and I have no idea on how modelling works. Could you kindly recommend me some sources to learn more about the subject?
Thank you.
just out of curiosity how much graphics programming / graphics programs usual ui / graphics algorithms experience did you have when programming this ?
Algorithm recommending me a good video for once, must be bugged.
You must have been starving.
Same thing right here 😂😂😂😂😂
yt algorithm used to be so good 😭😭😭
lol same
A bug is sometimes a feature my brother
Only 1500 lines of C is just... wow. I hope someday I can code anything as simply and efficiently as you.
My efficiency is so bad, i wrote a code almost 700 lines long just for a TicTacToe game thats run in the console
@@shoodlerwhat did you write in those 700 lines?
@shoodler Share your code please?
It is 2024 lines of C (and raylib, without it it would be muuuuuch more). But still very impressive.
you're kidding, right? have a look at a real project
didn't need to flex that hard on the title, but dang that's impressive
That's largely deserved
Considering the amount of work this requires, I don't think he is flexing enough
it made me watch this video, I'm impressed he did all of that in 1800 lines of code
fr need to flex more this is insane
Bro I can't even draw pixels in C
Only way to figure it out is by doing it. I recommend sdl or raylib. Go forth and plot some pixels.
use SDL(2D) or openGL(3D) with glfw to create window
it's not that hard
@@Garfield_Minecraft then what
@@undeadpresident
1. Use SDL or OpenGL
2. Open window
3. ???
4. You made a 3D modeller or can draw pixels on screen
Learn it.
Came for the "in C in a week", stayed for the great explanations and visuals!
Your first video in 7 years and its a banger like this.
If this program has an option to use Perlin noise for making things, I'll call it a Minecraft mod!
This is how Dreams PS4 works too. Mostly. They actually voxelize the SDF and then render particles at each voxel. They also make it so that the CSG tree is just a straight line, it makes it possible to do a bunch of optimizations in the voxelizer.
Dissing blender is wild
It hurt my only feeling.
yeah it was a weird diss cause blender's method is better, i wouldn't want to make something and not know how many tris it has
this was a good showcase and impressive but it's not better than blender maybe that was too much ego
@@abex15 Ehh.... This is a simple information, it could give you. It has nothing to do with the modelling process itself. Even more, everything is pixels in two dimensions under the hood...
@@godnyx117 dude what?😭 ur talking to someone who actually models in blender, how can you say tris have nothing to do with the modeling process? And in the end omg what 😭😭😭😭😭😭
@@abex15 I didn't mean to offend you, sorry if it seemed like that. Let's try again. You said that you wanted to know the number of triangles a model has. What I replied is that, you can model with the way that is shown in the video and also, have the program display the number of triangles for the model. So, you are not forced to model a specific way and work with triangles directly. You'll just have the program display them if that's what worries you.
The last one. Our screens are 2D. Yes the model are treated as 3D, but the screen is 2D so under the hood, the pixels are drawn in a 2D dimension. The calculations just happen in a 3D environment.
Oh wow! Very inspirational! Thanks for making this video!
Happy it was recommended. Impressive stuff. Subscribed.
This is amazing! My favorite part of this is when you showed off at 3:30 that you can essentially change the quality of your shapes. This would be great to use for retro-style games in essence of PS1 and Nintendo 64!
Really amazing work. Liked and subscribed.
Wow. I'm happy this was recommended to me. I use mainly for modelling, I try it out.
Thanks Daniel.
Very nice explanation! Saw the post on HN and really enjoyed it. Very cool project
this is awesome, thanks for sharing. Also I really enjoyed your explanation of SDF's
The animations were so extraordinarily sick, I liked them a lot
Thanks! My next video is about how I made them. Subscribe!
man this is incredibly impressive, you have an amazing way of conveying knowledge.
Thank you!
Thank you!!! Very helpful tips. Saved me a lot of work!
Great project and explanation. Hope to see you release more videos without waiting 7 years again!! Instant subscribe
The video I have coming out in 7 years is gonna be amazing
This is incredible! I've been looking for an SDF modeler for some time now
this would be great for a game-making game (like dreams or project spark), since it looks pretty intuitive and you can already control it with a game pad
Very nice! I was thinking of writing exactly this kind of editor that generates GLSL for a distance field raymarched game idea last year, but never did. I like your picking idea, I was planning to ray-test the original shapes instead, but it wouldn't work very well with soft-mins like you said. I also love the idea to triangulate for export, very nice indeed.
It's rare getting recommended some good content by yt. Keep up the good work 💪
I would be blessed if you could please make a line by line explanation video on this. It just looks so well built and production ready. ❤❤ Good job man instant subscribe for such amazing content eagerly waiting for more.
Man you are legend. I'm your fan from now on. Impressive work.
What a beautiful video and nice explanation. Marching Cubes explained perfectly.
Interesting approach having the shaders modified when adding a shape. I only used hand made shaders so all the shapes were "fixed" to what was in the code.
Have you thought of using buffers with shape definitions and then using loops inside the shader that process each type?
That seems to be more of compute shader approach rather than a graphics shader, but it might work.
This is god damn amazing for one weeks worth of work!
Huge props
really cool project ngl, amazing work
Amazing work, glad to see some talented people in this world
So I’ve been working with 3D in Java and glsl too for about a year, been programming for 11 years. I’ve made my own engines but holy cow making a complete model editor in a week is very impressive. Makes me think someone has had a lot of practice ;) good job on the editor and the animated video.
1500 lines is incredible, even with raylib as a rendering backend. good stuff
Incredible work!
love the raylib UI widgets!
Cool. My first go at graphics was an stl file viewer with opengl. Still not completely solid on how the boundary between CPU and GPU works, but it was fun learning. I got sidetracked thinking about how I could write shader code to solve linear algebra problems. Only later did I realize that's what a compute shader is lol.
Good to see you back Daniel
This is insane.
A whole new way to think about working in 3D.
I am gonna give it a try.
Impressive, complex topic into a bite sized digestible format. You earned a sub my friend
Haha, I love the cursor shape selection tactic. Some old software renderers with cursors like ultima underworld and system shock did basically exactly the same thing.
absolutely insane, keep up the hard work >:D
Really cool Daniel!
Man that’s some impressive work.
Dope! Looks great
That’s extraordinary. Very well done sir
Amazing!
Amazing project
This is so impressive!!
Very cool! Reminds me of 3d software called 3dgo for SGI from like what feels a 100 years ago.. how times have changed.
Holy cow, this is gold!
Impressive work 🎉
wonderful, encouraging!
This is brilliant! 👏
This looks so good bro i will try it
Great work 🙂
Finally quality content
amazing stuff
Wow! This is really impressive!🍀
Very nice, has a lot of potential, well done.
Hit some bug with white screen after applying roundness to starting cube and clicking into the void.
Haven't tested yet, but I would be curious to see how quad remesh fairs with the marched cubed/voxelized mesh.
Features I would like to see:
- zoom in/out (preferably with mouse wheel) and middle mouse drag to pan
- splitting shapes into groups with settings (atm idk how you really apply cutting or smooth blending in this setup)
- support for more shapes + extrude (e.g. making cylinder out of extruded circle shape)
- add support for perlin noise deforms or even custom function deforms
- add support for some array modifiers (which should make thing more efficient in case of repetition)
Btw in case you didn't know already a good source for further research on this topic is Inigo Quilez.
Impressive, will check it out.
Insane work!
Really informative and entertaining ❤️
There's an extremely similar program called Womp 3D that's quite good and fun.
Impressive how similar a job you did
From one programmer with the last name Hooper to another, good job.
This is like when Inigo Quilez demonstrates 3D modeling in Shadertoy
man this is just incredible..
Really impressive!
Very impressive!! 👏👏
Great work fam!
Nice! You can do SDF modeling in blender through addons of course
thanks for sharing ive tried using cad before and stopped in my tracks. generative models are the future and this seem to be a large leap in that direction.
this is a gem.
amazing job!
pretty awesome
wow ! great job !
No way. You're awesome bro.
This video is gonna blow up real soon!!
just..incredible...
great project! :O
Very impressive work! Good techniques! Keep up the good work. How did you make the visualization animations?
My next video is about how I made the animations. Subscribe!
@@danielhooper already did!
Dangggg, as a beginner programmer in C++, this goes hard, amazing work
This is great work, especially for a week! For me to implement just basic shapes in Blimey took much more time.
Thank you
this is really nice
Saw the title of video, immediately subscribed.
Great video
Very cool!
The biggest block of ray marching modeller is 'saving to mesh' feature.
If it isn't possible, it is just a fancy pixel zoo.
Marching cubes is a reasonable method, but its problem is the surface quality.
Maybe surface nets would work better.
This man is an absolute beast.
Amazing an SDF modeller, sick
Another day, another sdf tool. God damn, I wish I could do it in just a week like you, then I would have my thesis long finished x-x
Great explanations and animations, nice usage of interactive shader regeneration with lazy baking!
What were the gizmos made in?
You have great potential, use it well
I think it's a very nice concept for quick digital capturing of concepts/3d sketches even for CAD work (i''m a mechanical engineer)
Very impressive
that is awesome
You are a genius dude
This is wild!
Could you make a video showing how you set up the UI and possibly how to deploy it as a packaged app or executable?
Man! This is freaking awesome!!! Respeсt!!
that's cool dude!