Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Recursive Recipes – directions to make food from scratch (recursive.recipes)
250 points by qrv3w on May 29, 2018 | hide | past | favorite | 75 comments

The classic book "Joy of Cooking" is kind of recursive like this.

If you want to make a Reuben Sandwich, you turn to p. 272, and describes the bread, meat, cheese, and sauerkraut. Then it says to spread it with Russian Dressing and points you at p. 364 for that.

The Russian Dressing recipe includes horseradish and grated onion. It also includes Mayonnaise, and for that it points you at p. 363. Another ingredient for Russian dressing is either Chili Sauce or Catsup, and for each of those it points you to p. 847.

On p. 363, there are several paragraphs about Mayonnaise, and 3 recipes for hand-beaten, mixer, and blender versions.

On p. 847, neither the Chili Sauce nor Tomato Catsup recipes have any sub-recipes, but both of them point you to p. 841 for information about Pickling Equipment and Ingredients and they also both point you to p. 804 for a procedure for sealing sterile jars in boiling water.

The jar-sealing procedure on p. 804 points you to p. 165 for an illustration of a tool for lifting jars out of boiling water.

The pickling section on p. 841 mentions that water should be soft and refers to p. 519, the About Water section under Know Your Ingredients which discusses filtration among other things. It also mentions you should only use pickling or dairy salt, and refers you to About Salt on p. 568. And finally it mentions when pickling, you might want to used the Spiced Vinegar recipe on p. 527.

An Australian equivalent is Stephanie Alexander's The Cook's Companion. Almost every ingredient has a "goes with" list that makes it a great starting point when you have something to use up or that you've picked in the garden.


I love this: https://recursive.recipes/recipe/refried-beans?amount=10&tim...

Totally absurd, but fun to play with.

I do find sometimes it says it'll be cheaper to buy it, but in several cases I'm positive it's not, or the price of the product in store vs from the recipe isn't directly comparable.

The example of refried beans is complicated. If you buy a can of refried beans, it won't be as high quality as the recipe provided. The recipe is rich in butter and onions. A can will likely have lard or vegetable oil in it, and very little onion (likely powdered). It also claims it's cheaper to buy the can, but it's because initially the recipe suggests buying cans of beans. If you use dried beans, you're probably spending about the same amount but getting far nicer refried beans.

Anyway, it's a fun project, and the things I noticed aren't really problems and are easy enough to negotiate in the interface. I had fun with it.

What about raising the cow from a calf, though?

Most constituent lard is made from a pig. And pigs (while quite social) take pretty good care of themselves even if simply/only fed and watered. Depending on your environment, that might well be done by letting the pig go wander about and find feed and water.

What does that have to do with the time required?

Also, pretty sure we don't typically get milk from pigs.

feed and water are very expensive, as is the calf

I made this for fun with React and Go, its open-source if you want to hack it yourself. [1]

I was inspired by the book "Make the Bread, Buy the Butter" by Jennifer Reese. I tried to continue the idea to see how much money+time it costs to continually substitute an ingredient for the recipe of that ingredient.

Sorry for the ads - I use them to make back the $ spent on the domain :). I just toned them down.

Please let me know if there are any other suggestions!

[1]: https://github.com/schollz/recursive-recipes

I know the first pull request I'm going to do for this one. Chicken and Egg goes on indefinitely.

Fun, and the absurdity puts things in perspective.

Minor suggestions:

* Allow currency change (e.g. EUR instead of USD)

* Use + and - signs or green and red colors when hovering over the ingredients to show if money can be saved or not. Also put the amount of time in a different font size or color. (Site is very minimalist though which is great).

* Explain sources for price calculation (I'm skeptic about some, and curious who its based for).

Great suggestions. There are actually sources for the price calculations but I wasn't sure yet how to display them, or if they were wanted. If you want them then someone else probably does too so I can add that.

Make the Bread, Buy the Butter

Not having read the book, I'm guessing it mostly breaks along the lines of perishability? E.g. bread lasts a few weeks, butter lasts a year.

Perishability is a factor. Other factors are start-up cost (e.g. chickens require building a coop), time, and preferred taste (some things just taste better from a store and some are better homemade).

The book is more of a fun read. There's some funny anecdotes about trying to raise bees and chickens.

Awesome project. I'm a bit obsessed with making food from scratch. I love to see how far down the rabbit hole I can go.

I really enjoyed the design of the site. Thanks for sharing!

Wife: Can you bring me a glass of water ? Me: sure. One hour later ... Wife: What took you so long ? Me: I couldn't fill the glass because there where dishes, and the dishing machine was full, so I had to empty it, then I couldn't find the dishing tables, so I put the kitchen cabinet's in order, but accidentally spilled some flour, so I cleaned the floor and worktop while I where at it. Next day at work: Boss: Can you implement feature X ? Me: Sure ...

Malcolm in the middle did this very well as oen of their pre-titles bits - https://www.youtube.com/watch?v=AbSehcT19u0

I refer to this video sooo many times a year everytime someone tries to understand why some “simple” tasks take so long.

Very nice! Suggestions: don't break the back-button; and make it somehow clearer that one can expand the recipes. As others I was also confused about "buy cookies in the store".

Thanks. I realized I was pushing the history on every React render(). I've fixed that now.

The "buy cookies in the store" basically means that there is not enough time to make them so you should buy them (its a bit tongue in cheek). You can increase the time by using the slider or clicking on the cookies so you can get the actual directions. Also, if you hover your mouse over the "Chocolate Chip Cookies" ingredient you can see how much money you save (or lose!) by making them from scratch.

Going to the store takes time as well though. Best thing would be to already have the cookies in the cupboard.

Yep, it does take time to go to the store (and heck, which store?). Heck, it might even cost energy (ie. kJ) too. However one can perhaps also order online and then it only costs the time to order the product plus the waiting time. Which is idle time, not active time. There's a nuance difference between that. Consider a gazpacho. It requires the soup to be served cold, so after it is basically prepared you need to put it in the freezer. Or consider you marinade something such as tempeh which you stir fry afterwards (the latter of which is active time, the former idle time). Whereas if you're an hour in the kitchen actively busy preparing things, that's active time.

Hovering doesn't work very well on touch screens :-)

The chicken and the egg dependencies should result in an infinite loop

This absolutely made my day.

"If you wish to make an apple pie from scratch, you must first invent the universe" Carl Sagan (as in the Cosmos remix https://www.youtube.com/watch?v=zSgiXGELjbc)

For making the vegetables, you should have seeds as an ingredient. Then to make seeds you need the vegetables, so you could have a cycle in your dependency graph.

Also you should keep adding recipes for seawater and soil etc until you have a recipe for creating the universe. And use an apple pie as your example recipe.

Haha. Yeah this is the chicken-and-egg problem. There are no cycles here since I'm working from the basis of primordial practical ingredients, in that each recipe should ideally boil down to just sun, soil, water, and seeds (be they fungi spores, cow embryo, chicken eggs, vegetable seeds, etc.). It would be neat to expand this to the universe though :)

Except when I click "egg" in the recipe it gives me instructions on how to produces eggs from an egg-laying chicken, then how to produce an egg-laying chicken from a chick... "how to incubate a chick from a fertilized egg" doesn't seem too out of scope.

I would think the ingredients could be processed in parallel.

For example, the Chocolate Chip Cookies recipes quotes a total of 9 years 29 weeks to make everything, but really the longest lead item is the vanilla beans @ 4 years. So really it's a 4 year process isn't it?

You're right. I made the tool so that you could just make each recipe like you would normally do, doing one step at a time. In reality you would try to multitask, but that makes it more complicated to dictate as directions. At that point, I would actually try to generate a Gantt chart [1] which could make it easier to follow how to make things in parallel.

Also, as a sidenote - each recipe actually has its own "parallel" and "serial" time. The parallel time is independent of quantity, and the serial time is dependent on quantity. For example, growing vanilla beans has a parallel time of four years (each plant will grow simultaneously) and then they have a serial time of ~1/2 hr per plant to harvest.

[1]: https://en.wikipedia.org/wiki/Gantt_chart

Checkout this site for a cool recipe 'chart':

- [Oven Baked Chicken and Rice - Recipe File - Cooking For Engineers](http://www.cookingforengineers.com/recipe/81/Oven-Baked-Chic...)

Yes, you're right. I missed the vanilla processing time. But at least you understand where I was going.

Still, a very cool project. Nice work.

This works for "passive" time but not for active time, i.e. you can do other things while the vanilla beans are infusing, but you can't churn butter and also grind wheat. So the site would have to differentiate between the two categories of time.

This is hysterical!

Make the vanilla beans (4 years)

Vanilla grows best in warm temperatures, preferably in the 70’s to 90’s. Cooler temperatures will slow down the growth. Keep temperatures above 60˙F for the most part. Vanilla orchids benefit from regular applications of fertilizer.

It really is good for a laugh, but it’s also an interesting way to visualize just how much goes into something as “simple” as a chocolate chip cookie. It’s the labor of many people all around the world to grow the wheat, the vanilla, the cacao, process the cacao, raise the cows, churn the butter, etc.

That was fun!

I know I'm nitpicking here but I see that some elements have not been broken down ( ex : cocoa powder in cookies) even on absurdly longer time scale. Regardless, good work.

Intuitively, it can serve as a good resource to understand food composition for cooked items.


The first person I showed it to asked how to make a cow.

Thanks, I appreciate the nitpicking :)

I always wanted to have something like this for math proofs. Like, when you’re reading a complicated derivation, where the author glosses over the details, you could click on the given step and see why it’s true. Then repeat it arbitrarily deep.

Off the topic but quite annoying to me: moving the slide creates a bunch of URL histories that break the "back" button.

I've noticed this happening more and more with js heavy websites lately.

Recipe substitutions would be great so you can have multiple ways of making the same thing. Someone else mentioned seawater and soil substitutions until you have a recipe for the universe. Though there are other ways to also grow food without soil (hydroponics).

I don’t understand the concept. I go the the recipe for pancakes, and it says the ingredients are pancakes? Is there a joke here I’m missing?

That tells you how much it costs to buy pancakes. If you click the pancakes box it'll tell you how much you can save by making them from scratch, and give you instructions.

Some things are cheaper and easier to buy; others are cheaper to make yourself.

Try moving the slider that specifies your time limit.

Click on "Pancakes" in the ingredient list to expand it.

move the "available time" slider

it switches from "1 minute: buy pancakes in store" to "50 weeks: Let your seawater sit in the sun"

That looks really cool, though there is a small bug.

Before I spend 10 years making the olive oil from scratch, I need to know how to make 'soil'

This is awesome and surprisingly deep, clearly a lot of work went into this... I'm not entirely sure to what end, but good job!

Baking powder should be separable into an acid and a base. https://en.wikipedia.org/wiki/Baking_powder


Save $.01 by making salt from scratch in 2 weeks, 10 hours

When I hear building from scratch , am reminded of this - How I built a toaster from scratch - https://www.ted.com/talks/thomas_thwaites_how_i_built_a_toas...

You could never get hired as a chef with this approach.

They would reject you for not using dynamic programming recipes instead.

This is rubbish. Most of them just say go buy it. I truer refried beans and an English muffin.

Plus it's a slow, crappy website

Have you played with the sliders? I don't think so.

Oops, my bad. I still feel like the site could use some work, that graph looks pretty pixelated... Great concept though.

This is very silly. I like it. I kinda compare this to an XKCD "what if" question about cooking. "What if i dont have eggs, but I have a chicken?" And so on...

This is a cool concept but this is so meta - it looks like my browser history recursed on itself lol

Haha, sorry about that! Didn't mean to subvert everyone's back button. I am just learning React and I think I pushed the history too often in the page.

No worries! we're all learning here :)

Sorry too many obnoxious ads to stay longer than 5 seconds. Maybe put ads after you have a userbase?

I like the name and idea, but I agree that the ads are way too big - especially on mobile.

I don't see any ads. I'm using Firefox on my Moto G5+.

Making a chicken from scratch -- hilarious. Where do you source those 'recipes' ?

The recipes are pretty generic. The data is actually all in a configuration file on Github. [1] Its organized in terms of "reactions" as in, every recipe is a "product" of some process applied to a set of "reactants". This is useful for reactions that have multiple products.

[1]: https://github.com/schollz/recursive-recipes/blob/master/rec...

I get a 404 every time I click on one of the recipes.

Looks like the site is being hugged to death!

Where did you generate the directions from?

I have a list of recipe "reactions" [1] which is compiled into a giant network of recipes. When a recipe is chosen, the directions are generated recursively from this network.

[1]: https://github.com/schollz/recursive-recipes/blob/master/rec...

Cool idea, but super frustrating that your site breaks my back button. There's basically never a justification for this.

> Make the pancakes > Go and buy it.

Would it be too much to add an actual recipe for the pancakes?

Increase the amount of time slider to allow for more ways to make it.

Your site is broken, does not work without JS.

Show us how to make it work without JavaScript then.

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