top | item 40860116

Graph-Based Ceramics

38 points| areichert | 1 year ago |alexreichert.com

17 comments

order

alfor|1 year ago

Cool, another computer nerd into ceramic and glazes!

Glazes is actually glass where you mix all kinds of powdered element from the periodic table and melt them at 1200C to hopefully get a result you like. A unusual kind of chemistry.

I am more interested in the glazes and the results he got than the crud app and the DB. Just read it in diagonal, but I don't see why a simple Django app wouldn't take care of this easily (with admin) and you use sqlite for local use case.

romwell|1 year ago

Seconding everything you said.

I'm about to assemble my Cerambot 3D printer and get into the game too :D

But yeah, the year is 2024, and the idea of using a relational database model to store relations is new again. Otherwise, this is a poster use case for SQLite.

romwell|1 year ago

What an excellent ad for SQLite, where you could do this with a simple schema:

    Table 1: <piece id> <combo id> <location>

    Table 2: <combo id> <glaze id> <priority>
That's.. it.

Location specifies where the combo is applied to the part; priority specifies ordering of the glaze layers (glazes whose order doesn't matter have the same priority).

The only thinking that needs to be done is understanding that you don't mix glazes and combinations in a single project, but a project has a set of combinations associated with it, some of which may only have one glaze.

Writing the requisite SELECT queries (getting all pieces that use a glaze, or vice versa) is left as an exercise to the reader (which, I hope, is straightforward - but the same can be said of the schema).

This article does a lot of mental gymnastics to avoid using a relational database to store relations. NoSQL has its places (e.g. sometimes, a KV store is a KV store), but this isn't it.

Sometimes I feel like the NoSQL hype did some collective damage to the way people think about data. But then again, I'm not a database architect, so what do I know.

ajkjk|1 year ago

I would definitely use a simple relational model for this. Or probably in practice just download the whole dataset and do everything locally because it's going to be so small.

But I suppose this is an ad for the writer's graph database anyway.

IanCal|1 year ago

It doesn't seem to be their database, and "download the dataset and do this locally" doesn't make sense to me in terms of building what they wanted.

simonw|1 year ago

My partner does ceramics and she has an incredibly detailed Airtable database for this, it's truly beautiful to behold.

FrustratedMonky|1 year ago

I would really like to see a visual of how these different treatments lead to different results. To see the 'graph', with the actual end results. I know at top of article there were some pictures, maybe I'm missing it and it is linked somewhere.

m3kw9|1 year ago

You would have been done with maybe 1/10 the code if you went with SwiftData and targeted ios17 as the base os as that is also a graphdb, you don’t really need a server for this type of app. Everything local would be good enough.

douglee650|1 year ago

I wonder if using Blender shader networks would be a good way to model this? Especially with procedural nodes, where interactions might be modeled.