Hacker Newsnew | past | comments | ask | show | jobs | submit | arjonagelhout's commentslogin

Merry Christmas!

Here’s a quad tree:

11

11

0110

0110

1111

0110

00000000

00011000

00011000

00111100

01111110

11111111

00011000

00011000


Hi HN, I’m working on a 3D modeling app, and landed on a simple approach to implementing undo for a mesh graph data structure.

I’d also love to be pointed to other techniques or approaches that might be better.

Let me know if the part about recording the diff is of interest.


I have the same issue. For many of the questions my answer is "all of the above, but A in context A, B in context B, etc.". Many are also not mutually exclusive.

Take this example: "When debugging I typically:"

> Write tests to isolate the problem

In the case of math functions, or more primitive building blocks, writing tests can help ensure correctness of the underlying functions, to exclude them from the problem search.

> Reason about the code logically first

This is always useful.

> Use a debugger to step through code systematically

Useful when dealing with a larger codebase and the control flow is hard to follow. The call stack can give quick guidance over trying to manually decipher the control flow.

> Add print statements to understand data flow:

Useful when debugging continuous data streams or events, e.g. mouse input, where you don't want to interrupt the user interaction that needs to be debugged.


Is the fact that the answer isn’t easy a feature or bug?


Oh a bug, surely. How is the quiz supposed to give you insights when it's unanswerable?


By forcing you to make a decision without context.

Similar to how when presented with the trolley problem some will ask many follow up questions about the individuals on each track, the train, etc.

That’s not the point.


But here, the context is relevant, and the analogy does not change this.


> By forcing you to make a decision without context.

Not the OP, but what would be the point to that? In any practical scenario there is always context, isnt it? I guess I don't quite get what we are trying to measure here.


I think it’s a bug in getting a useful outcome, but it’s a feature in creating engagement with the post.


It is not primarily a matter of difficulty. The problem with choices like these is that they seem to be predicated on a rather simplistic, formulaic view of software development - a view that experienced developers will recognize as flawed.

In this case, one tacit assumption is that a given developer will typically adopt just one of these approaches. Another is that they can meaningfully and objectively be ordered along either of the axes purportedly being measured.


I get “A problem repeatedly occurred on <url>” on iOS Safari.


I'm building my own polygon modeling app for iOS as a side-project [0], so I feel a bit conflicted.

Getting fully featured Blender on the iPad will be amazing for things like Grease Pencil (drawing in 3D) or texture painting, but on the other hand my side-project just became a little bit less relevant.

I'll have to take a look at whether I can make some contributions to Blender.

[0] https://apps.apple.com/nl/app/shapereality-3d-modeling/id674...


There’s also the excellent Nomad Sculpt, which while not a mesh editor, is an incredibly performant digital sculpting app. Compared to Blender’s sculpt workflow it maintains a higher frame rate and smaller memory footprint with a higher vertex count. Of course it’s much more limited than Blender but its sculpting workflow is much better and then you can export to Blender.

There is room for more than one modeling app on iOS as long as you can offer something that Blender doesn’t, even if it’s just better performance.


How does it compare to blender 4.5 with Vulcan enabled?


Just for reference I’m running 4.5 with the Vulcan backend and sculpting a 6.3 million vertex object completely smoothly and Blender is using 4 GB of RAM and 2.5 GB of video RAM. Granted my system has a 9800 x3D and a 5070ti.


One thing Blender lacks is easy 3D texture painting. As far as I know, neither is there a decent 3D texture painting iPad app. Definitely a gap in the market.


This might scratch that itch? (not really my domain, but I happened to see this recently, so my apologies to you if it's not what you mean)

"UberPaint: Layer-based Material Painting for Blender (PUBLIC BETA)" https://theworkshopwarrior.gumroad.com/l/uberpaint

https://www.youtube.com/watch?v=meX3cbtdVbI


Yes… I have seen this before and played with it. This was a good attempt at emulating the behavior of an app like Substance Painter. However… the core problem is that in order to paint textures you need very complex and deep functionality. When using Substance, I have to variously consider: the texture channels (e.g. color, roughness etc), the many layers that may serve these channels, the baked texture channels (e.g. ambient occlusion, normals etc), the many blend modes, masks and adjustments that serve and interconnect all these.

I doubt that anything other than native blender functionality could serve all this with any elegance.

I teach substance painter and it does a good job and hiding all this complexity until you need it. It is very common for students to underestimate it as an app… to view it as just photoshop for 3D.


Procreate allows to load and paint 3d models. It is nothing like Substance painter, but it might work for some usages.


Not even a close comparison. There’s painting colors and then there’s texture painting (masks, alphas, normals, specular).


Yes. And you can paint textures too with Procreate. But like a said, not as advanced as Substance painter and others. It might still be enough for some use cases.

Source: https://procreate.com/procreate/3d


To cheer you up, in my experience over the existence of the App Store, anytime something like this comes to the Store is a big win for independent side projects. Your project might possibly be way cheaper and solve a specific problem, so it would benefit from the awareness that Blender's large marketing footprint would inevitably leave behind ;) Keep building!


I'm currently in contact with the Blender team to see where I could contribute, but you're right that there is space for multiple projects.

I think I'm going to focus more on CAD / architectural use cases, instead of attempting feature parity with Blender's main selling points (rendering, hard-surface modeling, sculpting).


> Your project might possibly be way cheaper

Eh ... blender is open source.


>> my side-project just became a little bit less relevant.

Blender has a pretty big learning curve. Since your app has a much narrower focus, you can still make something a lot of people will use.


Having been in the app development game for a long time, I know the feeling but have also learned to realize that this is actually not a negative; it means there's a strong signal that there's a desire for 3D apps on these touch devices. Competition can be really good. And your app has the ability to be more focused vs a legacy app that has to please a very large user-base who've come to expect it to behave a certain way.


That's a good way of looking at it!

I'm definitely aiming to build a more focused app compared Blender, as I want to focus explicitly on modeling, e.g. BRep or NURBs.

What kind of apps have you worked on?


Well, funny enough I'm actually working on a visionOS sculpting app at the moment! It's metaballs based, and kind of a different vibe / niche than what you're going for.

Eg, more like a sketch than asset production, and metaballs-focused which obviously is going to create a very different topology than NURBS, etc.

My first app was Polychord for iPad which is a music making app that came out in 2010.

These days Vibescape for visionOS is a big one for me, and there are others. I also worked in the corporate world for about a decade working on apps at Google, etc.


On the contrary, your project just became even more relevant. Blender badly needs an alternative/competitor. Everybody loses if a single project dominates.


Maya, 3D Studio Max, Cinema 4D...

Blender has a ton of competitors. They're all commercial and have corporate backing. If anything, blender is the "little guy". It is utterly amazing what Ton has managed to do with Blender.


Calling Blender an underdog isn't accurate at all. It has easily the most reach and biggest use base of all of them.


I would think Maya is the most influential of all of them. Blender is popular among hobbyists and people who aren't able to shell out a few thousand every year, but Maya dominates in the commercial world. Plus many animators are using Unreal Engine just for traditional animation now


Absolutely correct.


Blender is absolutely an underdog in commercial studios. It is used, but it’s the minority tool for professional settings. There are still several areas blender is lacking compared to maya or 3dsmax.


blender is fortunately open-source...


So is Chromium. But, like with web browsers, competition is always good.


Blender is nothing like chromium. It's not made by a big company, it sprung up in an extremely for-profit niche (and it has like 4 serious competitors that are all actively in use)


and chromium is (arguably) great. lot's of great browsers are based off it at least.


Have you see picocad? It is hands down one of my favorite pieces of software


I haven't used picocad, but I came across it once before. It looks adorable! I'll definitely check out its UX.


have you seen the guy doing Feather 3D for iPad? there's a lot of demand for 3D on touch screens, but hard to find the how.


I didn't know about Feather 3D, but it looks super aesthetically pleasing. I'll have to try it out.

I tried uMake a while back, but found the 3D viewport navigation a bit hard to use, and would often find out I had been drawing on the wrong plane after orbiting the camera.

After using something like Tilt Brush in VR, it's hard to go back to a 2D screen that doesn't instantly communicate the 3D location of the brush strokes you're placing.


To add to this list, Apple has MSL, which uses a subset of C++


I think this is indeed the advantage of this paper taking C++ as the language to compile to SPIR-V.

Game engines and other large codebases with graphics logic are commonly written in C++, and only having to learn and write a single language is great.

Right now, shaders -- if not working with an off-the-shelf graphics abstraction -- are kind of annoying to work with. Cross-compiling to GLSL, HLSL and Metal Shading Language is cumbersome. Almost all game engines create their own shading language and code generate / compile that to the respective shading languages for specific platforms.

This situation could be improved if GPUs were more standardized and didn't have proprietary instruction sets. Similar to how CPUs mainly have x86_64 and ARM64 as the dominant instruction sets.


What is the main difference in shading languages vs. programming languages such as C++?

Metal Shading Language for example uses a subset of C++, and HLSL and GLSL are C-like languages.

In my view, it is nice to have an equivalent syntax and language for both CPU and GPU code, even though you still want to write simple code for GPU compute kernels and shaders.


The language extensions for GPU semantics and code distribution required in C and C++.

The difference is that shader languages have a specific set of semantics, while the former still have to worry about ISO standard semantics, coupled with the extensions and broken expectations when the code takes another execution semantics from what a regular C or C++ developer would expect.


I would expect a shading language to provide specialized features for working with GPU resources and intrinsic operations.


Could you elaborate on why you think libraries are an anti-pattern?

Is the alternative just one library or executable, with namespaces and directory structure being the source of truth for organization of a codebase?


because that usually leads to unnecessary builds and ODR violations.


For me, Docker Desktop is simply an easy way to launch the Docker daemon and inspect some created images and their corresponding logs. Other than that, the cli suffices.


We had to remove Docker Desktop at my job (I think they started asking for money?) and moved to Lima/Colima. If this project means one less program to configure to get my docker containers running then I'm all for it.


Docker desktop for commercial use requires a license and they don't release binaries for Mac other than desktop. Seems like their one route to monetization. I use docker for literally only one build that doesn't work on native macOS so i love the idea of switching to a simple standalone CLI


I use Rancher Desktop plus the FOSS docker CLI from Homebrew. Works well, and has no licensing issues.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: