This tutorial will guide you through creating a perfect pizza using TomatoPy. We'll cover everything from dough preparation to final baking and quality assessment.
Prerequisites
Before starting, make sure you have:
Basic understanding of Python
Virtual environment set up
Understanding of basic pizza concepts
Step 1: Setting Up Your Kitchen
First, let's initialize our virtual kitchen and configure the pizza oven:
Copy from tomatopy import Kitchen , KitchenHardware
# Initialize kitchen
kitchen = Kitchen ()
# Set up hardware
hardware = KitchenHardware ()
oven = hardware . get_oven ()
# Configure pizza oven
oven . configure (
temperature = 450 , # Celsius
heat_source = "wood" ,
humidity = 0.65 ,
heat_zones = {
"center" : 450 ,
"edges" : 480 ,
"top" : 460
}
)
Step 2: Preparing the Dough
Let's create the perfect pizza dough with proper fermentation:
Copy from tomatopy import PizzaDough
# Create pizza dough
dough = PizzaDough(
thickness="medium",
size="14inch",
style="neapolitan",
hydration=0.65, # 65% hydration
fermentation_time="24h",
flour_type="00",
salt_content=0.02 # 2% salt
)
# Check dough properties
print(f"Dough hydration: {dough.get_hydration()}")
print(f"Fermentation status: {dough.get_fermentation_status()}")
Step 3: Creating the Sauce
Let's prepare a classic pizza sauce:
Copy from tomatopy import PizzaSauce, Tomato, Garlic, Basil
# Create sauce ingredients
tomatoes = Tomato(
ripeness=0.9,
variety="San Marzano",
weight=400 # grams
)
garlic = Garlic(
cloves=3,
freshness=0.95,
size="medium"
)
basil = Basil(
leaves=10,
freshness=0.95,
variety="Genovese"
)
# Create pizza sauce
sauce = PizzaSauce(
base="tomato",
consistency="smooth",
seasoning_level="medium",
herbs=["basil", "oregano"],
garlic_content=0.05, # 5% garlic
sugar_content=0.02 # 2% sugar
)
Step 4: Preparing Toppings
Let's set up our toppings with proper proportions:
Copy from tomatopy import Topping
# Create toppings
mozzarella = Topping(
name="mozzarella",
amount=200, # grams
distribution="even",
moisture_content=0.52
)
pepperoni = Topping(
name="pepperoni",
amount=100, # grams
distribution="scattered",
spiciness="medium"
)
basil = Topping(
name="basil",
amount=10, # leaves
distribution="scattered",
freshness=0.95
)
Step 5: Assembling the Pizza
Now, let's create and assemble our pizza:
Copy from tomatopy import Pizza
# Create pizza
pizza = Pizza(
dough=dough,
sauce=sauce,
size="14inch",
style="neapolitan"
)
# Add toppings
pizza.add_topping(mozzarella)
pizza.add_topping(pepperoni)
pizza.add_topping(basil)
# Check topping distribution
distribution = pizza.get_topping_distribution()
print(f"Topping distribution score: {distribution}")
Step 6: Baking Process
Let's execute the baking process with proper temperature control:
Copy # Pre-heat oven
oven.preheat(
temperature=450,
duration="30m",
heat_zones={
"center": 450,
"edges": 480,
"top": 460
}
)
# Bake pizza
baked_pizza = oven.bake(
pizza,
duration="2m",
rotation_frequency="30s",
steam_injection=True,
crust_development="high"
)
# Monitor baking process
with oven.temperature_monitor() as monitor:
print(f"Center temperature: {monitor.get_center_temp()}°C")
print(f"Edge temperature: {monitor.get_edge_temp()}°C")
Step 7: Quality Assessment
Let's analyze our pizza to ensure it meets our standards:
Copy from tomatopy import TasteTester
# Create taste tester
tester = TasteTester()
# Analyze pizza
profile = tester.analyze(baked_pizza)
# Check quality metrics
print(f"Crust crispness: {profile.crust_crispness}")
print(f"Cheese melt: {profile.cheese_melt}")
print(f"Topping distribution: {profile.topping_distribution}")
# Get texture analysis
texture = tester.analyze_texture(baked_pizza)
print(f"Crust texture: {texture.crust_texture}")
print(f"Cheese texture: {texture.cheese_texture}")
Step 8: Cutting and Serving
Let's cut our pizza into perfect slices:
Copy # Cut pizza into slices
slices = baked_pizza.cut(
method="standard",
slices=8,
slice_size="equal"
)
# Analyze slice quality
for i, slice in enumerate(slices):
print(f"Slice {i+1} quality: {slice.get_quality_score()}")
Troubleshooting
Common Issues
Soggy Crust
Copy # Adjust oven temperature and baking time
baked_pizza = oven.bake(
pizza,
temperature=480, # Higher temperature
duration="1m30s" # Shorter duration
)
Uneven Topping Distribution
Copy # Redistribute toppings
pizza.redistribute_toppings(
method="even",
target_distribution=0.9
)
Overcooked Cheese
Copy # Adjust cheese layer
pizza.adjust_cheese_layer(
thickness="medium",
distribution="even"
)
Best Practices
Proper Dough Fermentation
Copy # Check fermentation
if dough.fermentation_time < "24h":
print("Warning: Dough may not be fully fermented")
Temperature Control
Copy # Monitor oven temperature
with oven.temperature_monitor() as monitor:
if monitor.get_max() > 500:
print("Warning: Oven temperature too high")
Topping Balance
Copy # Check topping balance
if pizza.get_topping_balance() < 0.8:
print("Warning: Toppings may not be balanced")
Advanced Techniques
Creating Multiple Pizzas
Copy # Create batch of pizzas
pizzas = [
Pizza.create_neapolitan(size="12inch"),
Pizza.create_ny_style(size="18inch"),
Pizza.create_chicago_style(size="10inch")
]
# Bake batch
baked_pizzas = oven.bake_batch(
pizzas,
rotation_frequency="30s",
steam_injection=True
)
Custom Crust Development
Copy # Configure advanced crust development
baked_pizza = oven.bake(
pizza,
crust_development={
"bottom": "crispy",
"edges": "chewy",
"top": "golden"
}
)
Next Steps
API Reference - Explore the full API