I Made a 3D Modeler, in C, in a Week

Поделиться
HTML-код
  • Опубликовано: 8 сен 2024
  • ShapeUp source code, demo, and more: www.danielchase...
    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.

Комментарии • 385

  • @danielhooper
    @danielhooper  4 месяца назад +70

    Demo, Source Code, and more info about ShapeUp: danielchasehooper.com/posts/shapeup/

    • @AnonTen
      @AnonTen 4 месяца назад

      looks like Womp3D

    • @Red.chicken
      @Red.chicken 4 месяца назад

      Is there a way to export?

    • @guilhermemarinho3591
      @guilhermemarinho3591 4 месяца назад +2

      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.

    • @frankieboyseje
      @frankieboyseje 3 месяца назад

      just out of curiosity how much graphics programming / graphics programs usual ui / graphics algorithms experience did you have when programming this ?

  • @fewew7898
    @fewew7898 4 месяца назад +937

    Algorithm recommending me a good video for once, must be bugged.

    • @deleted_handle
      @deleted_handle 4 месяца назад +10

      You must have been starving.

    • @voltenheim
      @voltenheim 4 месяца назад +5

      Same thing right here 😂😂😂😂😂

    • @konLVdon
      @konLVdon 4 месяца назад

      yt algorithm used to be so good 😭😭😭

    • @10zDelek
      @10zDelek 4 месяца назад

      lol same

    • @prathamkorade5499
      @prathamkorade5499 4 месяца назад +4

      A bug is sometimes a feature my brother

  • @electrobean
    @electrobean 4 месяца назад +583

    Only 1500 lines of C is just... wow. I hope someday I can code anything as simply and efficiently as you.

    • @shoodler
      @shoodler 4 месяца назад +40

      My efficiency is so bad, i wrote a code almost 700 lines long just for a TicTacToe game thats run in the console

    • @RemoteAccessGG
      @RemoteAccessGG 4 месяца назад +3

      @@shoodlerwhat did you write in those 700 lines?

    • @arikborisov8131
      @arikborisov8131 4 месяца назад +1

      ​@shoodler Share your code please?

    • @lysy-zn2gg
      @lysy-zn2gg 4 месяца назад +13

      It is 2024 lines of C (and raylib, without it it would be muuuuuch more). But still very impressive.

    • @YourMom-rg5jk
      @YourMom-rg5jk 4 месяца назад

      you're kidding, right? have a look at a real project

  • @soyitiel
    @soyitiel 4 месяца назад +369

    didn't need to flex that hard on the title, but dang that's impressive

    • @arossfelder
      @arossfelder 4 месяца назад +18

      That's largely deserved

    • @bayroukabdelmouhaimine9658
      @bayroukabdelmouhaimine9658 4 месяца назад +24

      Considering the amount of work this requires, I don't think he is flexing enough

    • @pierdolsieszmato.
      @pierdolsieszmato. 4 месяца назад

      it made me watch this video, I'm impressed he did all of that in 1800 lines of code

    • @user-vw2qt8vp8e
      @user-vw2qt8vp8e 4 месяца назад +1

      fr need to flex more this is insane

  • @antonkesy
    @antonkesy 4 месяца назад +55

    Came for the "in C in a week", stayed for the great explanations and visuals!

  • @TheStickofWar
    @TheStickofWar 4 месяца назад +43

    Your first video in 7 years and its a banger like this.

  • @wege8409
    @wege8409 4 месяца назад +465

    Bro I can't even draw pixels in C

    • @Ehal256
      @Ehal256 4 месяца назад +43

      Only way to figure it out is by doing it. I recommend sdl or raylib. Go forth and plot some pixels.

    • @Garfield_Minecraft
      @Garfield_Minecraft 4 месяца назад +22

      use SDL(2D) or openGL(3D) with glfw to create window
      it's not that hard

    • @undeadpresident
      @undeadpresident 4 месяца назад +5

      @@Garfield_Minecraft then what

    • @HonsHon
      @HonsHon 4 месяца назад +21

      ​​@@undeadpresident
      1. Use SDL or OpenGL
      2. Open window
      3. ???
      4. You made a 3D modeller or can draw pixels on screen

    • @baranjan6969
      @baranjan6969 4 месяца назад +1

      Learn it.

  • @Brahvim
    @Brahvim 4 месяца назад +27

    If this program has an option to use Perlin noise for making things, I'll call it a Minecraft mod!

  • @MustacheMerlin
    @MustacheMerlin 4 месяца назад +41

    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.

    • @devcond1198
      @devcond1198 Месяц назад +1

      Can you tell me more about it?

  • @dyslexicsoap7605
    @dyslexicsoap7605 4 месяца назад +8

    The animations were so extraordinarily sick, I liked them a lot

    • @danielhooper
      @danielhooper  4 месяца назад +1

      Thanks! My next video is about how I made them. Subscribe!

  • @ilanlee3025
    @ilanlee3025 4 месяца назад +9

    Happy it was recommended. Impressive stuff. Subscribed.

  • @TonyIceCream
    @TonyIceCream 4 месяца назад +8

    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

  • @trainedtotroll9385
    @trainedtotroll9385 4 месяца назад +1

    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.

  • @ondrejrohon5696
    @ondrejrohon5696 4 месяца назад +8

    Oh wow! Very inspirational! Thanks for making this video!

  • @Browsinghard
    @Browsinghard 4 месяца назад +2

    Great project and explanation. Hope to see you release more videos without waiting 7 years again!! Instant subscribe

    • @danielhooper
      @danielhooper  4 месяца назад +7

      The video I have coming out in 7 years is gonna be amazing

  • @kennystevens2923
    @kennystevens2923 4 месяца назад +2

    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.

  • @adrok8644
    @adrok8644 4 месяца назад +193

    Dissing blender is wild

    • @Criteon
      @Criteon 3 месяца назад

      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

    • @godnyx117
      @godnyx117 3 месяца назад

      ​@@Criteon 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...

    • @Criteon
      @Criteon 3 месяца назад

      @@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 😭😭😭😭😭😭

    • @godnyx117
      @godnyx117 3 месяца назад +1

      @@Criteon 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.

    • @Criteon
      @Criteon 3 месяца назад

      @@godnyx117 that doesn't explain away how the youtuber "dissed" blender's method of working with triangles, as if it was an inferior method and he solved a problem
      as for our screens being 2d yeah i know how 3d works, that doesn't mean tri count doesn't matter, so why are you saying this? there's literally no point in bringing that up
      you can create a plane with 2 tris or with 2,000,000 and the engine will draw it out the same, BUT the plane with 2 tris will give you more performance
      you can't just dismiss tris cause "everything is just pixels anyway" or whatever you said you just sounded ridiculous

  • @alexhooper27
    @alexhooper27 4 месяца назад +4

    From one programmer with the last name Hooper to another, good job.

  • @atharvakamble5785
    @atharvakamble5785 4 месяца назад +2

    man this is incredibly impressive, you have an amazing way of conveying knowledge.

  • @adammontgomery7980
    @adammontgomery7980 4 месяца назад +1

    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.

  • @swaymaw
    @swaymaw 4 месяца назад +1

    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.

  • @Ehal256
    @Ehal256 4 месяца назад +1

    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.

  • @donovanfitz5204
    @donovanfitz5204 4 месяца назад +1

    There's an extremely similar program called Womp 3D that's quite good and fun.
    Impressive how similar a job you did

  • @DHARMA252
    @DHARMA252 3 месяца назад

    Man you are legend. I'm your fan from now on. Impressive work.

  • @jamesmillerjo
    @jamesmillerjo 4 месяца назад +2

    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.

    • @ianbryant
      @ianbryant 4 месяца назад

      Maybe surface nets would work better.

  • @jtsiomb
    @jtsiomb 4 месяца назад +1

    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.

  • @peterholub4375
    @peterholub4375 4 месяца назад

    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.

  • @DrBlort
    @DrBlort 4 месяца назад +2

    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.

  • @robvp71
    @robvp71 3 месяца назад

    love the raylib UI widgets!

  • @jackky_john.
    @jackky_john. 4 месяца назад +1

    Wow. I'm happy this was recommended to me. I use mainly for modelling, I try it out.
    Thanks Daniel.

  • @elimerl
    @elimerl 4 месяца назад +1

    Very nice explanation! Saw the post on HN and really enjoyed it. Very cool project

  • @ochjoo77
    @ochjoo77 4 месяца назад

    Very cool! Reminds me of 3d software called 3dgo for SGI from like what feels a 100 years ago.. how times have changed.

  • @michaelkohlhaas4427
    @michaelkohlhaas4427 3 месяца назад

    Thank you!!! Very helpful tips. Saved me a lot of work!

  • @futotta-neko
    @futotta-neko 4 месяца назад

    Impressive, complex topic into a bite sized digestible format. You earned a sub my friend

  • @St0RM33
    @St0RM33 3 месяца назад

    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)

  • @soniferous
    @soniferous 4 месяца назад

    This is insane.
    A whole new way to think about working in 3D.
    I am gonna give it a try.

  • @yuvrajkukreja1248
    @yuvrajkukreja1248 4 месяца назад +1

    Great work 🙂

  • @balaganesh3440
    @balaganesh3440 3 месяца назад

    Man that’s some impressive work.

  • @prologik85
    @prologik85 4 месяца назад

    I don’t know why RUclips suggested this to me, but, thank God, because this is simply AWESOME! Congrats bro.

  • @a6gittiworld
    @a6gittiworld 3 месяца назад

    Dope! Looks great

  • @oxidationOrange
    @oxidationOrange 4 месяца назад

    1500 lines is incredible, even with raylib as a rendering backend. good stuff

  • @ideallyyours
    @ideallyyours 4 месяца назад +2

    This is like when Inigo Quilez demonstrates 3D modeling in Shadertoy

  • @MEMEmasterOFjustice
    @MEMEmasterOFjustice 4 месяца назад

    Dangggg, as a beginner programmer in C++, this goes hard, amazing work

  • @visheshl
    @visheshl 4 месяца назад

    Amazing work. Please make a voxel based 3d sculpting app next. The world could really use a good sculpting app.

  • @christophercorona4285
    @christophercorona4285 3 месяца назад

    Incredible work!

  • @DarkSlayerAA
    @DarkSlayerAA 4 месяца назад

    It's rare getting recommended some good content by yt. Keep up the good work 💪

  • @arturkhachatryan8081
    @arturkhachatryan8081 2 месяца назад

    very impressive, good job

  • @nikhildebrandt8207
    @nikhildebrandt8207 4 месяца назад

    This is god damn amazing for one weeks worth of work!
    Huge props

  • @MaxDZ8
    @MaxDZ8 3 месяца назад

    Costructive Solid Geometry in a week? Much better raymarching distance field is great value with obj export. The dynamic shader is awesome!

  • @quetolical_5178
    @quetolical_5178 4 месяца назад

    This is incredible! I've been looking for an SDF modeler for some time now

  • @some1and297
    @some1and297 3 месяца назад

    I'm mad, your actually tempting me to pass parameters into my glsl thing. I feel like I caught a stray with the recompile comment for a recent project of mine.

  • @louisgjohnson
    @louisgjohnson 4 месяца назад

    this is awesome, thanks for sharing. Also I really enjoyed your explanation of SDF's

  • @MasoodOfficial
    @MasoodOfficial 4 месяца назад +2

    Very impressive work! Good techniques! Keep up the good work. How did you make the visualization animations?

    • @danielhooper
      @danielhooper  4 месяца назад +2

      My next video is about how I made the animations. Subscribe!

    • @MasoodOfficial
      @MasoodOfficial 4 месяца назад +1

      @@danielhooper already did!

  • @michaelgenao6212
    @michaelgenao6212 4 месяца назад

    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.

  • @tiagomacedo7068
    @tiagomacedo7068 4 месяца назад

    Just 1500 lins of hand written C + 300 of shader code, for all these features? Insane!

  • @shantanukulkarni8883
    @shantanukulkarni8883 4 месяца назад +1

    This is so impressive!!

  • @madplayer5
    @madplayer5 4 месяца назад +2

    Amazing!

  • @Sergio-ds3sq
    @Sergio-ds3sq 3 месяца назад

    No way. You're awesome bro.

  • @damofx
    @damofx 4 месяца назад

    That’s extraordinary. Very well done sir

  • @shodanxx
    @shodanxx 2 месяца назад

    Wow that looks great. Maybe finally I can upgrade from Sketchup 8 !

  • @DanielKierkegaardAndersen
    @DanielKierkegaardAndersen 4 месяца назад

    I love how the font immediately made me think "raylib" xD

  • @FlyingPetal
    @FlyingPetal 4 месяца назад +2

    But who knows, behind these 6 days there are years of working and learning ?!

    • @Bedfford
      @Bedfford 4 месяца назад

      yep, a little of clickbait on this

  • @lel7531
    @lel7531 4 месяца назад

    Amazing work, glad to see some talented people in this world

  • @Vivenk88
    @Vivenk88 4 месяца назад

    This is brilliant! 👏

  • @nin3_
    @nin3_ 4 месяца назад

    absolutely insane, keep up the hard work >:D

  • @septilevg6897
    @septilevg6897 4 месяца назад +1

    Finally quality content

  • @JohnMitchellCalif
    @JohnMitchellCalif 4 месяца назад

    wonderful, encouraging!

  • @budgetarms
    @budgetarms 4 месяца назад

    Took him 7 years to post another video, and well; it's a banger

  • @kechianim
    @kechianim 4 месяца назад

    Hi Daniel,
    I must say, your work is truly amazing. I can see the potential for even greater improvements with more time invested in it.
    I have a personal request. I'm interested in creating software eventually. While I know many sources suggest using Qt or Python for software development, I'm particularly interested in learning how to build a simple application like a Calculator or Notepad with graphical elements using C, C++, and Python. I understand this might seem like using complex coding for a simple task, but I'm keen on understanding how different languages come together in a project. Could you possibly create a comprehensive video tutorial covering this topic?
    Thank you in advance, and apologies for the lengthy request.
    Best regards

  • @aquss33
    @aquss33 4 месяца назад

    Honestly that looks kinda incredible especially as its done in C

    • @YourMom-rg5jk
      @YourMom-rg5jk 4 месяца назад

      why is it especially incredible because it's written in C? it's not some kind of esoteric rocket science

  • @timofeysobolev7498
    @timofeysobolev7498 2 месяца назад

    Great video!)

  • @pelihahmo6951
    @pelihahmo6951 4 месяца назад +1

    that is awesome

  • @Gres4
    @Gres4 4 месяца назад

    You have great potential, use it well

  • @gichwanene4281
    @gichwanene4281 4 месяца назад

    Good to see you back Daniel

  • @-uz
    @-uz 4 месяца назад

    really cool project ngl, amazing work

  • @mcblade85
    @mcblade85 4 месяца назад

    Very impressive!! 👏👏

  • @user-dw5ch6ux3u
    @user-dw5ch6ux3u 4 месяца назад

    AN SDF 3D MODELER? THAT GENERATES GLSL CODE! I LOVE IT! finally someone makes this!

  • @jason_m2003
    @jason_m2003 4 месяца назад

    Really cool Daniel!

  • @bause6182
    @bause6182 4 месяца назад

    I love the idea , looks like dreams in ps4 where you can make modeling with controllers

  • @kinershah464
    @kinershah464 4 месяца назад +1

    1 week you say, but the knowledge you possess must have taken years of studying and experimentation.
    Cool work though, hope this is open source.
    Computer graphics is so fascinating, a day doesn't go by that I don't regret taking the subject for granted during college (although the syllabus was outdated).

  • @thiagooliveira7935
    @thiagooliveira7935 4 месяца назад

    this is a gem.

  • @rvztyclips2745
    @rvztyclips2745 4 месяца назад

    Amazing project

  • @blimeycreate
    @blimeycreate 4 месяца назад

    This is great work, especially for a week! For me to implement just basic shapes in Blimey took much more time.

  • @kamuykaz01
    @kamuykaz01 3 месяца назад

    wow ! great job !

  • @sadhlife
    @sadhlife 4 месяца назад

    Daniel, you are insane.

  • @turxandunya4010
    @turxandunya4010 4 месяца назад

    Thank you

  • @pjf7044
    @pjf7044 3 месяца назад

    Great video

  • @nodesofnature603
    @nodesofnature603 4 месяца назад

    Get good topology and UVs and it would be a serious contender in the 3d modelling space

  • @connor43057
    @connor43057 4 месяца назад

    Amazing!

  • @Southern_Perspective
    @Southern_Perspective 4 месяца назад

    You’re new here? This looks very good.

  • @ru2979
    @ru2979 4 месяца назад

    This video is gonna blow up real soon!!

  • @skatlag
    @skatlag 4 месяца назад

    Great work fam!

  • @FahtheGamer
    @FahtheGamer 4 месяца назад

    This looks so good bro i will try it

  • @dimaryk11
    @dimaryk11 4 месяца назад

    A week?? Ain't no way bro, that's awesome!

  • @MDExplainsx86
    @MDExplainsx86 4 месяца назад

    Saw the title of video, immediately subscribed.

  • @imaciap
    @imaciap 4 месяца назад

    whaaaaaaaaaaaaaaaaat a SDF based modeling software?? this blew my mind. good youtube recomendation, hope everything goes well for you

  • @dmay817
    @dmay817 4 месяца назад

    Could you make a video showing how you set up the UI and possibly how to deploy it as a packaged app or executable?

  • @dr.margulis7773
    @dr.margulis7773 4 месяца назад

    Man! This is freaking awesome!!! Respeсt!!

  • @starc0w
    @starc0w 4 месяца назад

    Wow! This is really impressive!🍀

  •  4 месяца назад +1

    pretty awesome