
Show HN: Recursive Recipes – directions to make food from scratch - qrv3w
https://recursive.recipes/
======
adrianmonk
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.

~~~
prawn
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.

[https://www.stephaniealexander.com.au/books/the-
cook%E2%80%9...](https://www.stephaniealexander.com.au/books/the-
cook%E2%80%99s-companion/)

------
steve_adams_86
I love this: [https://recursive.recipes/recipe/refried-
beans?amount=10&tim...](https://recursive.recipes/recipe/refried-
beans?amount=10&timelimit=1&ingredientsToBuild=refried%20beans,onion,salt,butter,beans,dried%20beans,cow%20milk)

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.

~~~
cimmanom
What about raising the cow from a calf, though?

~~~
ci5er
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.

~~~
cimmanom
What does that have to do with the time required?

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

------
qrv3w
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](https://github.com/schollz/recursive-recipes)

~~~
Fnoord
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).

~~~
qrv3w
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.

------
z3t4
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
...

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

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

------
janwillemb
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".

~~~
qrv3w
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.

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

~~~
Fnoord
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.

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

~~~
mlthoughts2018
This absolutely made my day.

------
mkstowegnv
"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](https://www.youtube.com/watch?v=zSgiXGELjbc))

------
lifeformed
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.

~~~
qrv3w
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 :)

~~~
titanomachy
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.

------
joezydeco
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?

~~~
qrv3w
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](https://en.wikipedia.org/wiki/Gantt_chart)

~~~
aeorgnoieang
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...](http://www.cookingforengineers.com/recipe/81/Oven-Baked-Chicken-and-
Rice))

------
cfadvan
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.

------
satanic_pope
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.

~~~
tonyarkles
[https://github.com/schollz/recursive-
recipes/blob/master/rec...](https://github.com/schollz/recursive-
recipes/blob/master/recipes.toml)

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

------
tzahola
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.

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

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

------
nyxtom
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).

------
stingraycharles
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?

~~~
DanBC
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.

------
acutesoftware
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'

------
titanomachy
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!

------
kwhitefoot
Baking powder should be separable into an acid and a base.
[https://en.wikipedia.org/wiki/Baking_powder](https://en.wikipedia.org/wiki/Baking_powder)

------
dougmany
Salt:

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

------
weekay
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...](https://www.ted.com/talks/thomas_thwaites_how_i_built_a_toaster_from_scratch)

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

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

------
HaoZeke
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

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

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

------
dlhavema
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...

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

~~~
qrv3w
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.

~~~
mephitix
No worries! we're all learning here :)

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

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

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

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

~~~
qrv3w
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...](https://github.com/schollz/recursive-
recipes/blob/master/recipes.toml)

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

------
foobaw
Looks like the site is being hugged to death!

------
zippzom
Where did you generate the directions from?

~~~
qrv3w
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...](https://github.com/schollz/recursive-
recipes/blob/master/recipes.toml)

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

------
golergka
> Make the pancakes > Go and buy it.

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

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

------
sdx23
Your site is broken, does not work without JS.

~~~
kwhitefoot
Show us how to make it work without JavaScript then.

