Recently I’ve been playing around using AI to make videos about R packages. Here’s the first video I created, and it’s still one of my favourites:
I lowkey love this video: it’s a silly explanation of a silly package, but it feels fun and perfectly captures the spirit of genzplyr. But it’s also 100% slop. So today I wanted to dive into my definition of slop, why I think it’s sometimes ok to share slop, and what you can do to avoid slop for important work.
Making the video
But first, how did I make this video? It comes from this simple prompt:
Create a 60s pure javascript animation that introduces the viewer to genzplyr (this project). Really lean in on Gen Z slang and imagery, and keep it whimsical.
You create the script, the assets (including voiceover and music), the animation, concept, everything. Use google models for text-to-speech (gemini 3.8 text-to-speech), image generation (Nano Banana 2), and music (lyria 3.5).
Please spend 1-2 hours on it, and no more than $10 total. Work autonomously until done.
(If you want to do this yourself, I recommend giving your model this info about Google APIs. It won’t materially impact the output, but you’ll avoid burning a bunch of tokens having your agent re-learn these facts by making mistakes.)
I used Claude Code + Opus 5.5 to create this, but I’ve heard of success with OpenAI models in Codex and with Kimi K3 in Positron Assistant, so this appears to be widely supported. And it’s cheap, or at least cheap compared to doing this myself: most of my experiments have cost well under $10.
So brace yourself for a flood of similar videos in the near future; a lot of nerds have learned how easy it is to create content this way. If you’d like to see more examples, Twitter unfortunately is the place to go, and here are a few links my colleague Winston shared with me: https://x.com/deedydas/status/2104957026199900220, https://x.com/0xCodila/status/2104709584954839429, https://x.com/0xMovez/status/2104216919033192746, https://x.com/ArchiveExplorer/status/2105023417716191488 (TW: AI boosterism and AI-written prose).
What makes it slop?
So if I think this process is cool and I like the output, why do I call it slop? It comes down to the prompt, in particular, where the intellectual effort comes from:
You create the script, the assets (including voiceover and music), the animation, concept, everything.
This video includes zero of my thinking. Not only did the LLM do the work, but it also decided what work to do; I invested maybe 5 minutes of my time and zero taste, opinions, or thoughts. While the output might look polished, it represents zero human effort, making it slop.
I think this is one of the most dangerous features of AI: it trashes our existing heuristics for effort and trust. It used to be that making a slick video or writing a 40-page document implied that you cared enough to at least put in the effort, but now those signals are gone. It’s becoming increasingly difficult to tell what work represents genuine human effort and caring, and what work is the result of a few minutes of prompting and a few dollars of token spend.
When is slop ok?
Let me confess that I have a weakness for the right kind of slop, and I think it can be fun! My colleagues at Posit know that I like making slop music, like this song to promote contracting with Nic Crane to help out with ellmer, or this song complaining about how annoying our expense reimbursement tool is.
But there are some rules I think you have to follow if you’re going to inflict your slop on others. First: it should never be on the critical path for anyone. I’m trying to generate a smile or a laugh, not add work to someone’s plate. Second: it must be clear that it’s slop. You must advertise this upfront, so that if folks don’t want to engage with it, they don’t have to.
Another application of semi-slop that I find useful is generating pull requests to downstream R packages when I have to make breaking changes to a package. For example, I’ve recently been working on haven, an R package that allows you to read and write SAS, Stata, and SPSS files (see pyreadstat for the Python equivalent). I’ve made some improvements (particularly around metadata) that break some tests in existing CRAN packages. The fixes are usually routine, so I feel confident that Kimi K3 can correctly update the code and make a pull request.
I think of these pull requests as semi-slop, because I put in limited intellectual effort, not zero intellectual effort. I strongly believe that you should never inflict AI writing on other humans, so I use a skill to ensure that Kimi creates all the PRs as drafts, accompanied by a clear statement about their provenance (AI created, like this one). I then review the code and text (PR description) before marking the PR as ready for human review.
How can you avoid slop?
And indeed that’s the general rule for avoiding slop: put your brain (and heart!) into your work. I began this post with the first video I created, and I’ll end it with the most recent video I created:
This is far from perfect but I have done a lot of work to make it not slop. Firstly, I used a different prompt to force me to engage with the material:
Read the getting started vignette and any other links that are useful. Then prepare a content overview for human review.
Then plan the storyboard and present for human review.
This means that the content of the video is no longer pure AI, but created in collaboration with me.
Then instead of relying on default AI aesthetics, I prompted it with a design style that I like: Bauhaus. And while I don’t love every detail, I was definitely more engaged in the graphic design. Because I picked the style, I was more invested in it, and then asked for a bunch of other smaller changes.
Finally, I recorded my voice, instead of using text-to-speech. (Yes, I know I needed to re-record it in a less echo-y environment.) I think there are two benefits: firstly, it doesn’t sound so immediately and offputtingly AI-generated. But more importantly it forced me to really engage with the material, which led to even more changes. (The way I did this was also fun: I asked Claude to make me a recording studio in the browser, making the recordings fun and fast.)
In my first video, the AI did everything: it came up with the ideas, the audio, and the design. I invested maybe 5 minutes in it and it was slop, fun slop, but slop nevertheless. In the second video, AI helped me create the video, but I spent around an hour or two on it and I was responsible for the content, the audio, and the graphic design. By combining my time and my energy with an LLM’s video creation expertise I hope I have created something where the result is greater than the sum of the parts.
What do you think? Did you appreciate the second video more? What slop do you find joy in? What slop drives you to tears of rage?



Slop is more about trust, to me.
“If Wickham wrote this, I’m gonna trust it” - at least way more than random Substack/Linkedin dude.
Newspapers traditionally have this advantage already, taking responsibility and being liable for their writings.
I’m dying for some mechanism to prove authorship and originality.