Theme Catppuccin
Make yourself at homeCatppuccin

A softer light for long learning sessions.

Appearance

Loading your preference…

Dark palette

Choose a dark palette to try it.

Light uses Latte. Your choices stay in this browser.

Open Copper Orchard

SKETCHBOOK / 06 Copper Orchard · 2-week chapter

Page 1 of 3: One invocation, one pollen grain

An inspectable compute effect

One invocation, one pollen grain

A compute pipeline contains a kernel function and exposes limits such as maxTotalThreadsPerThreadgroup and threadExecutionWidth. The latter describes an execution grouping useful for choosing workloads; it is not a mandate to assume a hard-coded width for every future GPU. Select a legal group size and benchmark only after the kernel is correct. Rounded dispatch needs an index guard before memory access, and the host must ensure the count fits every bound buffer.

Use the supplied affine kernel to understand the dispatch, then replace the calculation with one deterministic pollen update. Start with a separate old/new position buffer so a later neighbor-dependent extension has a clear read/write contract. Keep the timestep finite and bounded, cap catch-up work, and compare a few selected particles against a CPU reference with a stated tolerance. No hardware ray-tracing capability is needed.

Connect the output to your renderer using the resource tracking and dependencies appropriate to its queue and storage model. If several frames overlap, account for their old readers before reusing a ping-pong buffer. Two allocations are a storage arrangement, not proof that an earlier frame has finished.

From the page to your own work

Your studio assignment.

Finish Copper Orchard and explain the complete CPU/GPU lifecycle in your own words.

A finish line you can see

A runnable macOS project, original orchard study, annotated capture, and concise portfolio case study.

  1. Verify a rounded-dispatch tail against a CPU oracle.
  2. Demonstrate pause, single step, resize, and clean shutdown.
  3. Include one measured change with workload and limitations.
  4. Separate supplied probe code, your renderer, and optional future features.
Keep the evidence in your weekly notebook ↗
Explain it like an engineer

Try answering aloud before opening the review notes. Use your own implementation as evidence.

How would you compare your Vulkan and Metal implementations fairly?
  • Use equivalent workloads, quality settings, hardware context, and measurement methods.
  • Separate API-contract differences from implementation choices and platform differences.
  • Report limits; two different devices do not isolate API overhead.

These prompts support practice; they are not an automatic assessment of your work.

A small creative variation ↗

Make one alternate color study with the same scene and resource budget; finish it in a single session.

Optional. Save it for later if this chapter already feels full.

Coming back after a break? ↩

Run the last stable orchard and choose one missing acceptance item. Finish it before adding any technique.

Books & principles behind this study +

Original Parallax explanations and assignments, with these works for further reading.

YOUR MARGIN NOTES

Leave yourself a good question.

What changed your mind? What would you try next?

Notes are private to this browser and saved as you write.

A CHECKPOINT, NOT A SCORE

Can you explain the idea and try the exercise yourself?

Completion records your own assessment. It does not compile or test your C++.
Companion source 2 files