logoalt Hacker News

EmanuelBlast Monday at 4:17 AM1 replyview on HN

Solo project since 4+ years: https://kastanj.ch/en?mid=hn47741527

The goal is to make every recipe foolproof on the first try, similar to when you walk into a restaurant and just pick what you want to eat without thinking about the details. The goal is to have the same experience, just pick what you want to eat, with recipes that tells you exactly what to do with no magic involved.

Technically it is probably very different from other recipe apps. The database is a huge graph that captures the relations between ingredients and processes. Imagine 'raw potato'->'peeled potato'->'boiled potato'->'mashed potato'. It is all the same ingredients but different processing. The lines between the nodes define the process and the nodes are physical things. Recipes are defined as subsets of the graph. The graph can also wrap around into itself, which is apparently needed to properly define some European dishes in this system. The graph also has multiple layers to capture different relationships that are not process related.

Why was it designed it in this way? Because food/cooking is complex to define. This design is the only way I have found that can capture enough of these complex relationships that the computer can also 'understand' what is going on.

My favourite thing about this is that each recipe is strictly defined in the graph. If the recipe skips a step, or something is undefined, the computer knows that the recipe is incomplete. It won't ask you to do 10 things at the same time and then have something magically appear out of nowhere. It is like compile time checking but for recipes.

It also enables some other superpowers, for example: • Exclude meat part of the graph = vegetarian. Same thing works with allergies. • Include meat part of graph = only show me recipes that contain meat. • Recursive search: search for 'potato' and the computer will know that french fries are made from potato. It can therefore tell you that you could make the hamburger meal, but you will need to complete the french fries recipe first, which should take 60 minutes. • Adjustable recipe difficulty (experimental): It knows which steps can be done in parallell, and which can't based on how the nodes connect. A beginner can get a slower paced recipe with breathing room between steps, while someone more experienced can do a faster pace and do more things in parallell.

If I knew what it would take to build this, I would never have gotten started. I completely underestimated the complexity of the problem I was trying to solve. But here we are, and now it is basically done and working.

The website captures the key points from a non-technical point of view, and you can enter your email and get notified when it will launch in your country.


Replies

cataflutterlast Tuesday at 8:32 AM

Sounds interesting, but if I may: the website is exceedingly sluggish, something like 1-2s interval between re-renders when trying to scroll the page (Firefox Linux). Not seeing any reason to explain this based on the page content but it's not happening with anything else on my system atm

edit: maybe `WARNING: Falling back to CPU-only rendering. Reason: webGLVersion is -1` from the console explains why, although I don't get why the page would need webGL