AutoContent API is an independent service. It is not affiliated with, sponsored by or endorsed by Google. Gemini, Gemini Notebook and NotebookLM are trademarks of Google LLC.

Turn a textbook chapter into an infographic: a Rust study sheet

A section of The Rust Programming Language became a one-page study sheet. See the image, copy the request, and see its cost and the one error we found.

How this was made. Audio and video overviews, slide decks and infographics are made with Google's Gemini Notebook (formerly NotebookLM), on accounts that AutoContent operates. AutoContent has no agreement with Google. Google can limit or stop this access at any time.

Turn a textbook chapter into an infographic: a Rust study sheet
AI-generated with AutoContent APIDownload PNG

What came out, and what we would change

We asked for a one-page study sheet for students, in portrait orientation with standard detail: the three ownership rules, what a move is, and how scope ends ownership, each with one small example. The result is a tall PNG with a title, three rule panels, three code samples, and the AutoContent badge in the corner.

The text is right. It matches section 4.1 of the book: each value has an owner, there is only one owner at a time, and the value is dropped when its owner goes out of scope. After let s2 = s1; the first variable is no longer valid, which prevents a double free, and Rust calls drop at the closing curly bracket. The three code samples are valid Rust.

One picture is wrong. In the move panel, s1 and s2 both carry a red cross, but only s1 becomes invalid: s2 owns the string after the move. Two rule texts also paraphrase the book: "bound to a variable known as its owner", and "the memory is automatically dropped" where the book says the value is dropped.

To steer a picture, describe it in the text, for example "show s1 crossed out and s2 as the new owner". The image took 3 min 1 s to generate and used 10 credits. infographicOrientation takes landscape, portrait or square, and infographicDetail takes concise, standard or detailed.

Text on the image

Copied from the image. It is part of the sample output.

Rust Ownership Essentials: Rules, Moves, and Scope

Rule 1: Every Value Has an Owner. Each value in Rust is bound to a variable known as its owner.

Rule 2: Single Owner Limit. A value can only have one owner at any given time.

Rule 3: Scope Exit Drops Value. When the owner goes out of scope, the memory is automatically dropped.

Move Transfers Heap Ownership. Assigning heap data invalidates the original variable to prevent double-free errors.

Scope Boundary Triggers Drop. Reaching the closing curly bracket automatically calls drop to free allocated memory.

The exact request

The body that was sent to POST /content/Create, unchanged, and the same request as curl.

request.json
{
  "resources": [
    {
      "type": "website",
      "content": "https://doc.rust-lang.org/book/ch04-01-what-is-ownership.html"
    }
  ],
  "outputType": "infographic",
  "infographicOrientation": "portrait",
  "infographicDetail": "standard",
  "text": "A one-page study sheet for students: the three ownership rules, what a move is, and how scope ends ownership, with one small example each.",
  "language": "English"
}
curl
curl -X POST "https://api.autocontentapi.com/content/Create" \
  -H "Authorization: Bearer $AUTOCONTENT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"resources":[{"type":"website","content":"https://doc.rust-lang.org/book/ch04-01-what-is-ownership.html"}],"outputType":"infographic","infographicOrientation":"portrait","infographicDetail":"standard","text":"A one-page study sheet for students: the three ownership rules, what a move is, and how scope ends ownership, with one small example each.","language":"English"}'
# then poll until "status" is 100:
curl -H "Authorization: Bearer $AUTOCONTENT_API_KEY" "https://api.autocontentapi.com/content/Status/<request_id>"

How we checked it

Text
We read every text block on the image against the source page.
Notes
Every text block matches section 4.1. One illustration is wrong: s2 also carries a red cross in the move panel.
Checked on
2026-11-02. Failed generations are run again and never published.

More examples

All examples