Want to join in? Respond to our weekly writing prompts, open to everyone.
Want to join in? Respond to our weekly writing prompts, open to everyone.
from
Hunter Dansin

My heart beats in the distension between
Eternity and mortality which
Meet at the seams of all I've ever seen.
How often have I peered through a loose stitch,
Wondering, when I leave this skein behind,
How far my soul must fly before it rests.
Why must my soul, from my body, unwind?
Am I destined to fail the final test?
Even belief in a blessed heaven
Leaves so much to the imagination
That some have turned it into a weapon
And, by fear, set nation against nation.
Even so, of such is our soul composed,
Bad with good entangled, God only knows!
Thank you for reading! I greatly regret that I will most likely never be able to meet you in person and shake your hand, but perhaps we can virtually shake hands via my newsletter, social media, or a cup of coffee sent over the wire. They are poor substitutes, but they can be a real grace in this intractable world.
Send me a kind word or a cup of coffee:
Buy Me a Coffee | Listen to My Music | Listen to My Podcast | Follow Me on Mastodon | Read With Me on Bookwyrm | Connect With Me on Substack
from bios
In Hyènes, Djibril Diop Mambéty's 1992 masterpiece, a wealthy woman returns to her impoverished village offering unimaginable wealth on one condition: kill Dramaan Drameh, the local shopkeeper who betrayed her as a girl. No one wants to kill the man, but the presumption that someone will sparks off a wave of money lending, conspicuous spending, and deal making, until many of the villagers owe others for goods, credit, and favours, making the outcome inevitable.
The National Film and Video Foundation (NFVF) recently put out a call for “Blockbuster” pitches. Minister of Sports, Arts & Culture Gayton McKenzie, before rearranging the agency, said, “We need Blockbusters. We need Mzansiwood.” Both are achievable.
With Chicco Twala's low-budget bubblegum films, the kykNET/Hartiwood box-office circuit, Netflix slates, and our previously booming international service industry, an organic Mzansiwood was already in full swing before the DTIC production rebate fell apart. The primary obstacles to Gayton's blockbuster are the DTIC's bureaucratic failures, and NFVF's own Sediba development system.
“Blockbusters are A-list talent, budget and high-level producers dependent. Development is probably the least important ingredient. The closest thing South Africa had to blockbusters was Leon Schuster's films.” — Pascal Schmitz, producer, Amariam Productions
The NFVF's total budget last year was R160 million; an A-list star costs $20 million per picture.
Alongside its usual production slates, the NFVF recently issued three specific calls: Animation, Once Upon a Family, and Blockbusters. Under the in-house Sediba Scriptwriting Training Programme, script development is taught through a rigid three-act framework with predetermined turning points, binary aggressor-and-victim character mechanics, and an obligatory Act III “message of hope.” The Once Upon a Family track (capped at R6 million) explicitly requires scripts to “avoid intense violence or mature content” and “focus on positive and uplifting themes,” while Becoming (capped at R4.5 million) limits eligibility strictly to coming-of-age trajectories for youth crews under thirty-five. In all three calls, any proposal that does not explicitly align with these predefined themes is effectively disqualified — if it makes it to draft stage at all. These operational guidelines reflect the Department of Sport, Arts and Culture's (DSAC) stated strategic policy, which defines the purpose of state-supported art not through formal or artistic criteria, but through measurable socioeconomic outcomes: “social cohesion, nation-building, job creation, and economic empowerment.” The very job of a state film agency should be to support work that might cause controversy. But the NFVF produces films that do not cause controversy.
To sustain this funding model, the NFVF requires that its production investment be recouped first — in full — before deferred fees, deferred costs, or back-end participation are paid. Yet the NFVF's own annual box-office reports undermine the premise: local feature films funded under this system rarely recover their R4.5M–R10M budgets through domestic theatrical release or local broadcast sales. In 2021, fourteen local releases earned roughly 1% of a R325 million total box office, with 95% of that revenue concentrated in three comedies; in 2023, eight domestic films shared R5.2 million — again less than 1% of the national gross, a sum no single film's budget could recoup from theatrical alone. The NFVF continues to publish aggregated annual and mid-year reports but has stopped providing granular per-film revenue figures for the individual features and slates it underwrites, disclosing only summary trends and top performers. The state mandates specific narrative templates to guarantee that projects remain accessible, socially cohesive, and “commercially viable,” yet the resulting films routinely fail to recoup.
When the NFVF was submitted direct questions regarding the micro-budget call, Sediba metrics, and commercial recoupment for this article, the agency requested a three-month extension to respond.
If Sediba films consistently, over decades, fail to recoup, why is the model still the standard?
This evasiveness fits a pattern. Since taking office, McKenzie has dissolved the National Arts Council, reportedly blocked the NFVF's attendance at Cannes in 2025, cancelled Gabrielle Goliath's Venice Biennale pavilion over its inclusion of a Palestinian poet killed in Gaza — leaving South Africa's official pavilion empty, wasting the already-paid Arsenale rental and preparatory costs running into millions of rands, though Goliath's work was shown independently nearby — and the NFVF council has suffered resignations and instability with six CEOs in two and a half years, most recently suspending acting CEO Onke Dumeko in June 2026.
According to the DIFF programme, Isiphethu workshops this year will teach filmmakers to use AI to build pitch decks and funder-compliant business plans. The listed focus is not craft but alignment — prompts like “make this pitch more bankable” or “align this plot with DSAC social cohesion parameters.” When applicants feed NFVF criteria into generative tools, the LLM does not introduce narrative conformity; it accelerates it. An LLM optimises whatever objective function it is given. Having no intention of its own, it produces structurally precise, terminology-compliant applications that precisely mirror what the agency has been trained to reward. The technology is not the problem. The problem is that the institution has created a system where conformity is the most rational strategy for survival. The result is a generation of filmmakers who have learned, through decades of Sediba workshops, that the path to support is not through artistic risk, but through institutional legibility.
And the applicant arrives on set with a map made by a tool that carries no experience of reality. An actor cancels, a thunderstorm arrives, a line of dialogue lands flat, and the person carrying the map hasn't examined the intentions behind these choices, and might struggle to adapt.
This compliance loop directly risks audience engagement. When an evaluation system requires every script to demonstrate an explicit character transformation and an unambiguous message of hope within ninety pages, narrative resolution must be fully spelled out on the page before production even begins.
This methodology stands in direct opposition not only to open, independent cinema, but also to surprising mainstream cinema — the kind that breaks out precisely because it refuses to resolve on predictable terms.
This is the problem of mandatory closure. By forcing all dramatic ambiguity to be resolved in the script to satisfy DSAC nation-building metrics, the institutional framework structurally excludes cinema where the audience does the work, essentially excising critical thinking, feeling, and the joy of cinema itself, the reason people pay to see films.
It can be argued that all stories fit a three-act structure, some end in hope, some in parable, some in ambiguity. But you can't prescribe the structure, and the hope, upfront. The writer, the director — it's their job to reach that on their own. The nature of stories is that there will be a three-act structure, since the dawn of time; it's why stories are told, it's how they captivate us. But if that structure and its actual timing is prescribed to a specific ending, it eliminates the chance and surprise of storytelling.
Streaming in South Africa promised to restore chance to storytelling. For generations, many Black South Africans saw themselves on screen only through stories shaped by institutions that did not belong to them. Opening Netflix and seeing local stories, local faces, and local languages is itself a vital cultural shift — representation creates confidence and confirms that a life previously ignored is now visible. Yet visibility and complexity are not the same thing.
Algorithmic curation and institutional funding both create representation through prediction, rewarding what is already recognizable: familiar genres, character arcs, and emotional outcomes. The mechanism is the same whether the gatekeeper is code or a compliance panel: proven patterns get funded; emerging ones do not. When complete legibility becomes the primary measure of success, culture is reduced to something designed to be immediately understood rather than something that challenges audiences to discover new ways of seeing. The risk is not that people finally see themselves on screen; the risk is that they only see themselves in forms that have already been approved — turning cinema into second-screen wallpaper.
A society cannot manufacture social cohesion by removing uncertainty from culture, because the act of encountering uncertainty is one of the ways societies learn empathy.
How does compliance to a form that eliminates chance, discovery and critical thinking promote social cohesion?
Netflix has built a global business on algorithmic predictability, and it works: Mandla Dube's Heart of the Hunter (2024) hit #1 globally on Netflix with over 11 million views across seventy-five countries in its debut week, while titles like Silverton Siege and iNumber Number: Jozi Gold also reached global Netflix audiences. Netflix can afford this because it has billions in capital, global distribution infrastructure, and data on 260 million subscribers. The NFVF has R160 million and no distribution arm. When a public funding agency with no theatrical infrastructure and no streaming platform adopts “blockbuster bankability” as a funding criterion, it is not duplicating Netflix's success. The blockbuster strategy requires either volume tolerance or content freedom. The NFVF has neither. And it is doing so with public money that is statutorily meant to support work the market would not otherwise fund.
Similarly, the NFVF's prescriptive new Animation track ignores that independent studios are already achieving blockbuster-scale success entirely outside the state apparatus. The CGI animated feature David (2025), produced by Sunrise in Noordhoek, Cape Town with no NFVF underwriting, was released on 19 December and came in second at the North American box office behind only Avatar, opening to $22 million and grossing $87.5 million worldwide. Variety hailed it as “a spectacular showcase for the technical capabilities of South African animation house Sunrise Productions.” It did not pass through Sediba. Hope was not mandatory.
David is not the only recent South African animated feature to succeed without the NFVF. The 3D animated feature Headspace (2023), produced independently by Luma Animation and The Ergo Company, earned R2.6 million at the South African box office — a significant return for a local animated feature, and proof that independence works at domestic scale as well as global scale.
The same is true on television. Shaka iLembe (Bomb Shelter for Mzansi Magic, 2023) had the highest-rated drama premiere in MultiChoice history and drew over 7.5 million DStv viewers across its first season — and has since won twelve SAFTAs from seventeen nominations, the most ever awarded to a single series. It is now in its second season. Developed over six years with historians and the late King Goodwill Zwelithini, funded entirely by MultiChoice, and made with no NFVF development support.
The question remains: if we already have Netflix, independent animation studios, and private broadcasters hitting blockbuster numbers entirely outside the NFVF apparatus, what is the actual purpose of the NFVF?
The institutional focus on prescribing thematic content overlooks the underlying economic infrastructure that previously sustained high-volume domestic production. The foundational catalyst enabling our organic “Mzansiwood” was not prescriptive scriptwriting criteria, but financial predictability provided by the Department of Trade, Industry and Competition's (DTIC) Foreign and Local Film and Television Production Incentive. By offering reliable cash rebates of up to 35% on qualifying expenditures, the DTIC incentive provided the financial floor required for independent producers to secure private equity and international co-financing. Over the past three years, however, independent industry bodies (the IPO and IBFC) have documented a structural paralysis within the DTIC scheme, citing unpaid rebate claims exceeding R600 million, multi-year payment backlogs, and administrative opacity that have paralyzed local producers and triggered an exodus of productions: producer Nimrod Geva says a R160 million TV production with foreign financing lined up, including from the BBC, was declared dead after the incentive froze (https://groundup.org.za/article/lights-camera-but-very-little-action-why/); The Castaways reportedly considered a R90 million KwaZulu-Natal shoot, with about 80 jobs attached, before filming in Greece and Fiji; and Recipes for Love and Murder's third season is reportedly weighing Ireland or Scotland over a return to South Africa.
With the DTIC owing R600 million to filmmakers, where is the third act redemption?
The foundational lesson of the South Australian Film Corporation (SAFC), which triggered the Australian New Wave in the 1970s and helped build an industry that now attracts nearly USD 2 billion in annual production expenditure. It did this by providing reliable financial infrastructure (repayable operating loans) while maintaining strict arm's-length non-interference in narrative content.
A thriving film economy is built through stable financial infrastructure and artistic independence, whereas attempting to substitute broken financial incentives with rigid, outcome-driven script development formulas systematically undermines the industry it seeks to grow.
Meanwhile, the films that have carried South African cinema to global prestige share a formal trait: none of them would have survived Sediba's development grid. Oliver Hermanus's Skoonheid won the Queer Palm at Cannes. Jahmil X. T. Qubeka's Of Good Report was banned on opening night by the Film and Publication Board, then won seven SAFTAs and AMAA Best Feature. This year alone, Jason Jacobs and Devon Delmar's Variasies op 'n tema took the Rotterdam Tiger Award, Sandulela Asanda's Black Burns Fast secured Berlinale Generation 14plus, and Nico Scheepers' black-and-white Afrikaans horror Hen swept Silwerskermfees before winning the Narcisse at Neuchâtel — the first African film to take that top prize in twenty-five years.
Furthermore, independence can pay off on different levels. My own independent 2014 short film Keys Money Phone cost R46,000 to produce, and generated roughly R130,000 in direct distribution and screening receipts.
Our state agencies are actively destroying the very industry they are statutorily tasked to support. During the reporting of this article, two emerging filmmakers communicated — one by email, one by direct message — that they could not speak on the record for fear that criticism would cost them their NFVF development funding. Their names are withheld here to protect their eligibility. This is the true cost of outcome-driven compliance: a climate of self-censorship and fear.
Gayton McKenzie, the DSAC, and the NFVF do not trust filmmakers or audiences, and that lack of trust undermines their ability to achieve their own objectives.
In an interview for a 1983 documentary, the Senegalese director Ousmane Sembène said: “Why be a sunflower and turn toward the sun? I myself am the sun.”
This was in response to being asked whether his films were structured to remain legible to European audiences — and, by extension, to European funding bodies.
from hypocritepoet
If I can do this
I can.
I can.
I have to.
43 days. Hell.
To whom to turn for help when you're helpless?
from Faucet Repair
19 July 2026
Goodbye ground (working title): I've had a few variations on a painting of a curtain reacting to a force (thinking of it almost like a gut being punched) lying around the studio for a while, and this may be the first instance of one working. I think the reason it does occurred somewhere in the process of two unsuccessful paintings merging to supplement and solve one. This has happened a couple of times now in the development of this recent body of work as I've begun to notice visual or sensorial similarities in seemingly disparate subjects. In this case, while working on the curtain, I had also been attempting to paint a cloud formation I saw over Spiaggia Blue Moon in Lido. It looks like a large, flat, gray-blue mass of fabric billowing across the sky, like a flag or a stage curtain moving right to left, with a small tuft of white cauliflower cloud sinking itself into a wrinkle near the bottom of the form like a paperweight.
That little cloud turned black and ended up filling the role of the aforementioned force, and it gelled such that it now seems it couldn't have been any other way. There's something ineffable in those switches from arbitrary to surprising to inevitable that I don't want to try to define, but I will say that working with paintings as both streams and estuaries is starting to make more sense as certain subjects become motifs. And this also speaks to the potency of opposition and tension and friction (formal and emotional) as it relates to resolution. But crucially: these relationships are not to be sought, but rather found or stumbled upon or recognized in the aftermath of work. This approach feels important to remember and preserve, because observation still lies at the heart of what I am doing, not invention. Although, with that being said, there is also something to contemplating the modern pattern of widespread dissatisfaction with what is already in front of our eyes.
A lot of time spent with Redon's drawings this week. In his words: “One must respect black. Nothing prostitutes it. It does not please the eye and it awakens no sensuality. It is the agent of the mind far more than the most beautiful color to the palette or prism.” Woman with Outstretched Arm (1868) especially—the wind, the birds, the body, the earth all moving as one cohered instance.
from
Tales Around Blue Blossom

When Henry's eyes opened, he was glad for the darkness. One of the hardest things he had to get used to was the fact that the planet had longer months and slower rotation which meant the planet was under much more light than his home.
Compared to Pax Aterna, the planet he grew up on, Victory ran on a thirty-four hour day. He glanced out the window and saw that the courtains were open and the window slightly ajar allowing the fresh night breeze come through. Sometime in the night, a maid must have come in and opened it for him. That was the other thing about the Xalteans here, they did not use air conditioning. Yes, there was one in his office but that was installed just for him early on and he made a point to not use it. Just felt wrong when others did not have access.
The air that came wafting in caused the sweat on his bare chest to cool him a bit more. The young man felt like he might shiver but it never came. God, why was he awake? Henry glanced over to the computer clock on his night stand and it's lowlight screen not only displayed what time it was but how much light and darkness they were experience. The numbers displayed were 7.4.0.6.
Arc 7, Segement 4, Count 0, Pulse 6., Henry forced himself to remember. The Xalteans used base-8 mathmatics and though he was not quite sure how it all worked, he learned enough to follow the life of the estate based on this. Arc 7 meant that the estate was in its slumber stage. Many of the shifts were either resting or sleeping dependent on their assignments and it was one of the few times that it was dark. Henry looked at the numbers underneath.
Jeez. Only twenty-seven and a half hours of light and only six and a half hours of darkness, and he was already in the second hour of that six. Well, doesn't appear I'm going to get any sleep right now.
The little digital clock also showed the temperature. 43 viku. Henry wracked his brains, what was that in farenheit? 89 if he remembered which was 31 in celsius. God, his head hurt from that math and the heat was no help.
Sitting up in the bed and swinging his legs out, Henry groped down on the floor for his t-shirt he had tossed aside and instead found it still there but folded neatly waiting for him. He flushed a bit with embarressment. Had he gotten so used to it that the maids were in an out of his room and doing things like this?
Pulling it over his head, he stepped out into the hallway and found that down the corridor a maid was sitting in one of the only chairs half way down, one leg crossed over another with a computer tablet in her hands reading. Her emerald hair moving slightly from the open window across from her. The click of the door made her look up, stand and bow with hand folded one over the other.
“Master,” she said casting her eyes slightly down.
“I don't need anything, Sheelari,” Henry said. He knew why she was there, to make sure a trusted maid was seconds away if he needed anything. They were allowed to read, write, do anything they wanted if they remained in that hallway in the off chance he came out. “I'm just going to head down to the kitchens for a bite to eat.”
“I can fetch something for you?” she said quickly but Henry shook his head. “I need to stretch my legs. If you want to grab something to eat in the maid quarters, I won't be back for about 30 minutes.”
She courtseyed again and Henry made his way to the stairs. He soon found himself on the first floor, the carpeted floors giving way to the marble. The estate was strange being so quiet. The lights had been dimmed to a comfortable orange and everyone was either sleeping or doing something quiet. Henry did see a maid or two, who hadn't made it to their rooms just curl up on one of the comfy sofas and pass out.
Probably a short shift and they got to get back at it in an hour or two, he mused to himself. The men and women of his estate were so dedicated to their jobs. Opening the double doors of the kitchen he took a few steps before he saw her. Sitting at the bar on one of the stools was someone he had not actually expected. His Mistress, Maevin Maer, was sitting there in a sheer nightgown of white with four different computer pads in front of her, the soft blue glow lighting up her face. In this light, Henry was struck by how beautiful she was. Her long lashes, deep blue eyes, and small nose. He also noted that she was also hot from the weather as she had pulled her nightgown from her shoulders and tied the arms around her waist so she was topless. Henry did his best not to stare.
Maevin's eyes darted over to him and he saw she was about to scold whatever maid threatened to disturb her but softened seeing him.
“Master,” she said turning her attention to him. “I thought you'd be asleep.”
“I was,” Henry said making his way to the large fridge. There was a section of the second shelf that his head chef Burdak had said he'd leave prepared meals for snacking. Yes, Henry had his own kitchenette that was stocked but he wanted to be out and about. “Got hungry.”
“Sheelari could have gotten you something.”
“I wanted to get it myself.”
Henry pulled out two peanut butter and jelly sandwiches made on a rather rich looking bread and then made his way oppposite of her and sat down on that stool. Maevin immediately moved to untie her top to cover herself but he waved her off.
“It's too hot,” he said. “I'm fine.”
Henry did love that pretty smile she would get and only give to him. The Terran lord took a bite of his sandwich and looked at the computers. “Whatcha working on?” he asked his mouth full. He hadn't realized how hungry he was.
“Schedules and incidents,” Maevin responded.
“Don't you ever sleep?”
“When I can.”
Yes, the estate was big and he also knew that Maevin was in charge of reports from the sattelite estates under their house name and independent locations but every time when he saw the actual amount of work, he felt overwhelmed.
“I don't know how you can keep up with it all.”
Maevin chuckled. “Practice and having a good core team. The first, second, and third order maids do a lot to help even the burden. That's why it is important to pick only the best for those positions.”
Henry nodded as he leaned forward to take a look what was on the screen. His Xaltean had gotten good enough that he was able to read most of it with little issue. Daily lessons and immersion had really helped him. Maevin turned the tablet for him to see.
“Anything interesting?”
“I'm just reviewing events for the day. Nothing major. Requisitions for equipment, disciplinary reports, personnel changes, things like that.”
“Nizzie on the discipline list again?” Henry grinned. That low order maid was quite memorable.
“Not today, which is a surprise.”
A word jumped out at Henry that he hadn't seen before.
“khesusuaema?' he asked curious. Maevin smiled and her eyes took on a glitter of mischief. Henry knew he was the only one who saw this side of her.
“Letters of Familiarity requests,” she said. “I think I explained those to you on the first day.”
“Yeah, you did,” he said surprised that he wasn't squirming as much as he thought. “There was a lot on that day.”
When the shuttle landed so long ago and Henry had been ushered out, he was drowned in Xaltean culture. The language around him sounded strange, the men and women were undressed, and the rules were so much different than when he lived in the Holy Innocentia. The fact that Maevin was sitting there, talking like normal while being completely topless would have had him blushing so red, you would have thought he was sun burned.
I've come a long way, and this proved it.
“So,” he said pulling the tablet closer. “What do we have?”
Maevin's delicate eyebrow shot up in curiosity and he grinned at her.
“I am lord of this estate. I think I should know what's going on, right?”
“Of course, Master.”
Maevin stood came around to the other side of the island and sat down on the stool beside him. He did his best not to flinch as she was now so close to him. She leaned in to look at the tablet more clearly.
“So, there are a few types of possible letters that one can issue. Within the estate, between estate, and outside the estates,” Maevin began to explain as she pointed to the different words.
Henry nodded, his eyes scanning the screen. “The difference being?”
“Well, most of the times on the estate, we don't police relationship unless it may pose a security risk,” Maevin began to explain. “On the estate, we only expect a letter of familiarity from our 4th order maids and higher.”
“Due to their access to me and the rest of the estate?” Henry guessed.
“Yes,” Maevin nodded. “The lower ranking really don't pose much of a risk and as we know, love makes one due stupid things so we try to limit that vector of attack against us.”
“And this khesusuaema sorunuelu. That's the outside version?”
The mistress of Blue Blossom nodded, her dark hair moving a bit though part of it was matted to her forehead from the heat. “Yes. That's situations where an eemodae wish to be in a relationship with someone from another estate or house and khesusuaema slenavisha is for relationship with the general public who are not part of our house system.”
“Someone would want to do that?” Henry said surprised.
Maevin tilted her head a bit confused. “We're...not a closed system, master. We may be a ruling estate but our relationship with the populace is extremely important. I am in communication with Governor Valkaelu weekly. We give tours of the estate all the time and there are many opportunities for citizens to work on the estate outside of our maids.”
“I...I didn't know that,” Henry said surprised.
“Well, that is mostly my fault,” Maevin said with a sigh. “I may have sheltered you too much from who we are.”
The young man nodded and patted her on the shoulder ignore how soft her skin was. “You had to play it safe. You had no clue who I was. I want to know. I'm not quitting and I want to make this year the best I can. I need you to explain everything, even the culture parts you worry that will offend me.”
Maevin gazed into his eyes and he knew she was searching for hesitation, a trap, but whatever it was, she didn't find it. She clicked off her tablet and let out a sigh.
“I understand how honest you are with your dedication,” she started carefully, “but there are parts of our culture that you may find uncomfortable or disgusting. It is hard to judge what is too much and what is holding you back.”
Henry nodded and smiled. “I'm a big boy. I can make those decisions on my own. I've made it this far, I don't see myself changing anytime soon. You and your people are amazing and I'm glad to be here.”
The Mistress of Blue Blossom smiled at him, the tension in her shoulders leaving. She clicked her tablet on again, “If that's what you wish, then there is something I need you to be made aware of. I've shielded you for some time but we have reached a point that it looks like I am interfering. I was not sure how to broach the subject with you.”
“What's up?” Henry asked bracing himself. This is what he had asked for.
“Do you remember Princess Fanina? Back at the tekiasetel?”
How could Henry forget? He had been drug into another room with the pretense of saving his life and then the woman stripped naked and climbed into his lap. Yes, Baroness Neeza Tavik had burst in and the visage stopped her but it was really hard to pay attention to anything else when he had that magnificant chest in his face.
Maevin gently thumped his hand to bring him back to reality. There was irritation in her eyes but it didn't make it to her voice. “I see you do remember the banquet.”
“Uh...yeah,” Henry responded coloring up.
“Well, the crown princess has sent an official request for you to take a concubine.”
It was at that moment, Henry had decided to drink some water and just like one of those silly comedy shows his sister enjoyed watching, he spit it out coughing.
“I'm sorry...what?” Henry said trying to clear his throat.
“A kyakihanxa,” Maevin continued. “Concubine is the closest word I could find in your language.”
There had to be more to it. His mistress would not have sprung this on him just like that. He calmed his heart and folded his hands in front of him on the island top. “Alright, explain to me what it means for your people.”
“A concubine among the Xaltean is a man or woman who is sent to an estate as part of their personal retinue. They are usually the children of higher ranking nobles. That act as ties between houses and estates.”
“I assume also as hostages between two houses that may not be getting along but need or want to,” Henry surmised.
Maevin smiled at him. “Very perceptive. That is the case in many situations. They are also part of a secondary alliance system that can be built if they are lucky.”
“Meaning?”
“Among houses and estates on good terms, it is quite common for one house to send a concubine to another with the express purpose of trying to get that lord to impregnant the concubine or the lady of the estate to become pregnant from the male concubine. The child would have status in both houses and would be an unofficial tie between them.”
The young Terran lord swallowed hard. This was definately something he should have expected but still caught him off guard.
“And the crown princess wants me too....”
Maevin finally let him off the hook with a chuckle. “Taking one to your private retinue does not mean you must have sex with them. It is just something to be aware of so that you aren't caught off guard if one tries to seduce you.”
“I mean, I understand what the point of this is but why me? I know I hold a unique spot but I'm only here for a bit. I don't see the point of making an alliance with me. It should be with House Avernell.”
“Because the crown Princess sees this as an opportunity to solidify her support among the houses. If House Patton-Avernell is willing to take a concubine and she gets to pick the house to send, then that house is going to be willing to do whatever to make sure it is their woman or man to go.”
“I'm a pawn again.”
Maevin shook her head. “Not a pawn but it is part of our political games. This is common. The only thing uncommon is the crown princess doing this. It's usually the High Barons.”
“Something I have to watch out for.”
“Yes.”
Henry Patton sighed and put his head on the cool marble counter top. “So, you think I should take one?”
“Candidly? Yes,” Maevin said. “You are part of our politics now and ignoring it will be detrimental to you. There are many who still hate Terrans and will use this to humiliate our High Baron. Shame and humiliation are worse than death in our culture.”
The young man nodded. There was no getting around this. He had promised to stay here for the year and he wasn't going to abandon his people.
“Who did she suggest?”
Maevin tapped her tablet and slid it over to him. On the screen was a woman with long deep violet hair in thick curls and bright crimson eyes to match. The emerald green dress was cut asymetrically with it running from one shoulder to her hip across her chest and then the longer skirt that was half way down her hips with strips of ribbon cloth straight up to her top piece so that the top held up the bottom.
“Oh, wow,” Henry said eyes wide before he looked up embarressed. Maevin's face had a bit of a smirk but she nodded. “Yes, exactly. That is why you should be careful. As you can see, she was selected because she is close to your preference.”
“Who is she?”
“Lady Aenixa Veemae of House Kolisai. Her father earned the title of Earl from the High Baron of House Kolisai due to his actions at the Battle of Last Light against the Drull.”
Henry looked down at her picture. A part of him was flattered that the royal houses went out of their way to find a woman he would like but also his gut twisted at the thought of how much digging they had to do.
“I...don't have to sleep with her or anything?” Henry asked tentatively. “You know I'm not...going to do things like that.”
Maevin shook her head. “It's not an expectation though she may try to convince you otherwise if their goal is to create a secondary alliance.”
“And she's not going to replace you?” Henry asked to make sure.
The mistress of Blue Blossom's face grew gentle and she shook her head. “I serve at the will of my master and no one can command me except for you and our High Baron.”
“Good.” He did not want to lose her. He slapped the island top with his hand. “Well, if it's the best political move to make. Then let's do it. Can you handle the invitation?”
“I can,” Maevin said gathering her stuff up. “There are some gift expectations and the proper endowment for a lady of her stature. You'll need to write a letter in your own handwriting to be delivered inviting her. How is your written Xaltean?”
“Sucks.” There was no point in lying about it.
“I'll have Yil focus on that for your studies for now. This isn't going to be an instant thing. There are a lot of steps and expectations before she can be properly invited to the estate.”
Henry walked her towards the door and held it open so she could go through with her hands full.
“I don't know what I would do without you,” he said as she made her way towards the stairs to her room.
That was the honest truth.
from Tuesdays in Autumn
“Before the invention of the gummed envelope in the 1830s, how did people secure their private letters?” begins the blurb on the front dust-jacket flap of a book that attempts to answer that question — Letterlocking: The Hidden History of the Letter, by Jana Dambrogio and Daniel Starza Smith. A copy arrived on Friday; I finished reading it on Sunday. Returning to the same blurb, letterlocking is defined as “the ingenious process of securing a letter using a combination of folds, tucks, slits or adhesives such as sealing wax, so that it becomes its own envelope”. The book gives an overview of a variety of the relevant techniques, illustrating them with detailed instructional diagrams and wonderful photographs of historical correspondence.
I say I finished the book — rather I finished an initial brisk skim through its text and an admiring perusal of the accompanying images. I intend to go back to it to carefully work through some of the examples and try a little letterlocking of my own. It’s a lovely volume to look at, though I suspect its true merits or faults will come to light while grappling at greater length with its finer details.
The other book I read this week (on Thursday) was another slim volume of poetry: Pink Tongue Out, Blind Cat by María Paz Guerrero, translated from the Colombian Spanish by Robin Myers. It’s another volume I think I’ll have to return to. I confess I ordered it almost purely on the strength of its title and cover design. It didn’t prove the most successful such impulse-buy. The poems, presented with the originals and translations in parallel, have a contemporary & improvisational feel, albeit in a style that didn’t immediately draw me in. Much, if not most of their meaning eluded me. One puzzling feature of the book were italicised lines in the originals. Many of these were given in both English and Spanish in the translated text, while others were left untranslated and others still given only in English. At least some of them appear to be song lyrics: perhaps they are all interpolations of others’ words? Anyhow, some explanatory notes about them would have been a welcome addition. Just enough of it all got through to me that I will want to give it another chance or two before giving up on it.
I loved The Hitchhiker’s Guide to the Galaxy in my youth. I first encountered it in the form of the BBC TV series, which aired when I was twelve. It felt like the perfect entertainment for me at that time. I didn’t get around to reading the books until I was sixteen, when I tore through the first three volumes of the ‘trilogy’ in quick succession. While I enjoyed them very much, it seemed to me that some of the humour was already slightly stale: a little too redolent of the departed ‘70s. In my wisdom, I imagined their appeal surely couldn’t last much longer! Despite that, I still read So Long and Thanks for All the Fish a year or so later (and thought it a let-down). Around the same time, I was amused and frustrated in equal measure by the computer game adaptation of the story. I never did read Mostly Harmless. Much later, enticed by nostalgia, I eventually made the mistake of watching the Hitchhiker's Guide movie when that came out on DVD.
Having missed out on the original radio broadcasts, I’d remained slightly curious about them. On Friday I happened to find a double album version of The Hitchhiker’s Guide in a bin of bargain vinyl at a market stall, and spent £10 buying it along with two other LPs. Vexation ensued when I learned this did not contain the radio shows, but rather a somewhat abridged audio re-recording done in 1979. The irritation soon faded again when I spotted an inscription in the record’s gatefold that read “To Gordon, Best Wishes, Douglas Adams” (Fig. 31). While I’ve no provenance or authoritative opinion to back it up, I like to think it’s a genuine signature (appropriately enough done in blue biro). To my inexpert eye it does resemble other of Adams’ signatures to be found on-line. The recording itself I found only intermittently amusing, with over-familiarity having taken its toll.
At the Marches Deli in Monmouth on Friday they had yet another artisanal Welsh blue cheese (there are more than I had ever imagined!) in the shape of Trefaldwyn Blue, which is my cheese of the week. It says here that “This rich blue cheese has a lovely egg-yolk orange colouring with ample blue veining. It has a dense, buttery texture and a gentle, slightly sweet flavour, with subtle lactic notes.” I can’t argue with that.
Temporary test entry
Marked with the Sig. ✒️
from
PlantLab.ai | Blog
A Node-RED flow that captures a photo on a schedule, sends it to PlantLab for diagnosis, and takes action based on the result. Push notifications, dashboard updates, MQTT messages to your controller, log lines into InfluxDB, or whatever combination you want. No Python. No YAML. Nodes and wires.
Setup runs about 25 minutes on a Node-RED instance that's already up. The cost is whatever camera you own plus PlantLab's free tier at 3 diagnoses a day. The output is a structured JSON result: 31 possible conditions, a growth stage, nutrient antagonism hypotheses, and confidence scores, all ready to feed into whatever comes next.
Node-RED suits growers who already have their tent wired up with visual flows. If you've got temp sensors piping into an InfluxDB dashboard, MQTT switches on a power strip, or a Telegram bot that announces fan speed changes, you already know the pattern. Plant health diagnosis is just another node in the chain.
Coming from Home Assistant? There's a tutorial for that too. Node-RED gives you more granular flow control and broader protocol support. HA gives you a cleaner device-and-entity model. Both work. Pick whichever one matches the rest of your setup.
Before we start:
ffmpeg fornode-red-dashboard for a visual panel, node-red-contrib-image-tools if you want to resize photos before sending, an MQTT broker if your grow controllers talk MQTTCamera tip: shoot the canopy from above or at a slight angle, with neutral light. Blurple grow lights throw the model off because everything comes out tinted purple. Either schedule the check during a lights-off window or use the camera's built-in flash. PlantLab wants to see actual leaf color, not a magenta smear.
Here's the smallest flow that actually does something useful. Four nodes. Inject on a schedule, pull an image from the camera, POST to PlantLab, debug-log the result.
[inject: cron 08:00] -> [http request: GET camera.jpg] -> [http request: POST plantlab] -> [debug]
Open Node-RED, drag these four nodes in, and wire them together.
http://192.168.1.50/snapshot.jpg or your Frigate http://frigate:5000/api/grow_tent/latest.jpgIf your camera needs auth, add a basic auth header. If it's RTSP-only, use an exec node running ffmpeg -i rtsp://... -frames:v 1 -f image2pipe - and pipe the stdout through.
https://api.plantlab.ai/diagnosefunction node below (not in the HTTP request node's UI)Before this node, drop in a small function node to wrap the binary image as multipart form data and attach the API key header:
const boundary = '----NodeRedBoundary' + Date.now();
const bodyStart = Buffer.from(
`--${boundary}\r\n` +
`Content-Disposition: form-data; name="image"; filename="plant.jpg"\r\n` +
`Content-Type: image/jpeg\r\n\r\n`, 'utf8');
const bodyEnd = Buffer.from(`\r\n--${boundary}--\r\n`, 'utf8');
msg.headers = {
'X-API-Key': 'YOUR_API_KEY',
'Content-Type': `multipart/form-data; boundary=${boundary}`
};
msg.payload = Buffer.concat([bodyStart, msg.payload, bodyEnd]);
return msg;
Put your API key in a Node-RED env variable or credentials node instead of hardcoding it. I wrote it inline for clarity.
Hook this up to see the full response. You'll get something like this:
{
"request_id": "req_abc123",
"schema_version": "1.1.0",
"success": true,
"is_cannabis": true,
"cannabis_confidence": 0.95,
"is_healthy": false,
"health_confidence": 0.87,
"growth_stage": "flowering",
"growth_stage_confidence": 0.9,
"conditions": [
{
"class_id": "calcium_deficiency",
"display_name": "Calcium Deficiency",
"confidence": 0.92
}
],
"pests": [],
"mulders_hypotheses": [
{
"excess": "potassium_excess",
"explains": ["calcium_deficiency"],
"evidence": 0.92,
"evidence_count": 1
}
]
}
The response can also include diagnostic_confidence, safety_classification, uncertainty_factors, environmental_patterns, and progression_risks. You can ignore the ones you do not need.
One thing worth knowing: the response is trimmed by omission. On a clearly healthy plant, you will NOT see a conditions: [] array – the field is left out entirely. Same with pests and mulders_hypotheses. Always guard with payload.conditions && payload.conditions.length before indexing.
Deploy. Click the inject node's button once to run it manually. If the debug panel shows a response with success: true, the plumbing is done.
Now it gets interesting. You want different things to happen depending on what the diagnosis came back with. Drop in a switch node right after the PlantLab response, three outputs:
msg.payload.is_healthyfalse (problem detected)true (all good)is_healthy is omitted)Always wire the third branch. If you accidentally point the camera at the lens cap, the wall, or your cat, the API returns is_cannabis: false with is_healthy left undefined. A two-output switch drops those silently. The third output catches them so you can log or send a “check your camera” notification instead.
Most of the work lives on the false branch.
Inside the problem branch, add another switch:
msg.payload.conditions[0].confidenceEarly-stage symptoms produce lower confidences. You don't want every 0.4 nitrogen-deficiency blip triggering a Telegram ping at 3 AM.
If you have a Telegram bot set up, drop a telegram sender node on the high-confidence branch. Use a template node before it to format the message:
[ALERT] Plant issue detected
Condition: {{payload.conditions.0.class_id}}
Confidence: {{payload.conditions.0.confidence}}
Growth stage: {{payload.growth_stage}}
Mulder's hypothesis: {{payload.mulders_hypotheses.0.excess}}
Swap the Telegram node for node-red-contrib-discord-advanced and point it at a webhook. Same template works.
If you run both HA and Node-RED, Node-RED can fire an HA webhook that triggers a mobile notification with the snapshot attached:
[http request POST: http://homeassistant:8123/api/webhook/plantlab_alert]
The webhook handler in HA does the actual notification. Useful if you already have notification channels, templates, and quiet hours configured over there.
This is where Node-RED pays for itself over a static dashboard. You can fire automations directly from the diagnosis.
Add a switch on the condition class:
msg.payload.conditions[0].class_idcalcium_deficiencyThen wire a change node to set the MQTT payload and publish to your dosing pump:
[mqtt out]
topic: grow/pumps/calmag/set
payload: ON
Then a delay node (5 seconds), then another MQTT message flipping it back OFF. Always notify yourself when a dosing automation fires. A false positive that dumps nutrients is a bad morning to wake up to.
[set pump ON] -> [delay 5s] -> [set pump OFF] -> [notify]
If the diagnosis returns powdery_mildew or similar with high confidence, push the fan speed up and drop target humidity in your environmental controller. Same pattern – switch on class_id, change node for the new setpoint, MQTT publish.
Regardless of what happened, log every diagnosis to a time-series database so you can build dashboards later. Drop an influxdb out node on the main line, before the switches. A function node preps the fields:
msg.payload = [{
is_healthy: msg.payload.is_healthy ? 1 : 0,
health_confidence: msg.payload.health_confidence,
top_condition: msg.payload.conditions[0]?.class_id || 'none',
top_confidence: msg.payload.conditions[0]?.confidence || 0,
growth_stage: msg.payload.growth_stage
}];
return msg;
Now you have a Grafana dashboard of plant health over time. Symptoms drift slowly over days. Watching a confidence line trending up on one specific condition is more useful than catching the single moment it crosses 0.75.
With node-red-dashboard installed, you get a web UI for free. A simple panel:
ui_template showing the latest snapshotui_text nodes for condition, confidence, growth stageui_gauge for overall health confidenceui_button wired back to the inject node so you can trigger a check on demandDrop them all in a group called “Plant Health” and they render in a grid at /ui. Pretty enough for the tablet stuck to the kitchen wall.

The whole flow described in prose:
Three triggers feed the same pipeline. Two scheduled injects (morning, evening) and one manual dashboard button. Each trigger pulls a camera snapshot, wraps it as multipart, POSTs to PlantLab, and parses the JSON response. From there the signal fans out. One branch writes every result to InfluxDB so you can graph drift over time. The other branch hits switch: is_healthy. The true side logs and stops. The false side continues into a confidence switch. Low-confidence detections only log. High-confidence detections fan out into Telegram, an HA webhook, and a switch: class_id that routes specific conditions into downstream automations (cal-mag pump on calcium deficiency, fan bump on mildew, whatever you wire up).
One diagnosis call in. One structured log entry. Two scheduled checks, one manual button. Zero or more notifications, zero or more automations fired. All from five node types: inject, http request, function, switch, change.
| Problem | Likely cause | Fix |
|---|---|---|
is_cannabis: false |
Camera angle, blurple lights, lens cap | Adjust position, use white light or flash |
| 401 Unauthorized | Missing or wrong API key | Check the X-API-Key header in the wrap-multipart function node |
| 503 Service Unavailable on upload | Image over 10 MB hits the upstream limit before reaching the API | Resize with node-red-contrib-image-tools before the POST. Target under 8 MB to be safe. |
| 429 Rate Limit | More than 3 requests/day or 90/month on free tier | Space out injects or upgrade to Pro (500/month) |
| Request hangs | Camera or API unreachable | Add a catch node on the flow; set HTTP request timeout to 15s |
conditions field absent |
Plant is healthy, or the image isn't cannabis, so no condition was detected | Expected. Guard with payload.conditions && payload.conditions.length – the field is omitted entirely on healthy plants, not returned as an empty array. |
Add a catch node wired to your alerting. When the flow itself breaks, you hear about it. Two weeks of silent green checkmarks on a flow that quietly stopped running is worse than a flow that never ran at all.
A few reasons.
Protocols come free. MQTT, HTTP, WebSockets, Modbus, CoAP, serial, SNMP – all one node away. Your dosing pump speaks MQTT, your camera speaks RTSP, your logger speaks InfluxDB line protocol, alerts go to Telegram or Discord. Doing that same glue in Python means pulling in four libraries and maintaining them yourself.
Visual flows match the mental model. “When the camera sees X, send Y to the pump and notify me on Z” is already a diagram in your head. Node-RED lets you lay it out on a canvas instead of translating between code and back.
You can change a running flow. Deploy swaps it in place, no restart. Handy for grow-room automation where you tune thresholds based on what the plants actually end up doing, not what you assumed they would.
If you prefer code, the same flow is about 40 lines of Python with requests, paho-mqtt, and a cron entry. Use whichever fits.
The response has every field you need for automation. The ones that matter most:
| Field | Type | Notes |
|---|---|---|
is_healthy |
bool | The simplest switch |
is_cannabis |
bool | Guard against pointing the camera at the wrong thing |
conditions |
array | Sorted by confidence, top result first |
conditions[].class_id |
string | One of 31 possible values |
conditions[].confidence |
float | 0.0 to 1.0, maps empirically to real correctness |
growth_stage |
string | seedling / vegetative / flowering |
mulders_hypotheses |
array | Nutrient antagonism explanations |
mulders_hypotheses is the block most growers end up leaning on. If the diagnosis is calcium deficiency but the hypothesis says the real cause is potassium excess, adding more cal-mag makes things worse. That's the kind of tip that saves you a week of chasing the wrong fix. More on nutrient antagonism here.
Do I need a dedicated PlantLab Node-RED node?
Not yet. The standard http request node handles it fine. A node-red-contrib-plantlab package is on the roadmap and will collapse the multipart wrapping into one node. Until then, the function snippet above does the job.
How does this compare to the Home Assistant integration?
HA gives you entities and a config flow. Node-RED gives you wires and broader protocol reach. If your setup is already Node-RED-centric, don't force HA into the middle just for this. If you have both, let Node-RED handle the flow logic and use HA webhooks for the notifications that already work well there.
Rate limits?
Free tier: 3 per day, 90 per month. Pro: 500 per month. A home grow with morning and evening checks fits the free tier with a spare daily slot. If you're monitoring multiple tents or running high-frequency checks during flower, Pro is probably what you want.
Does 0.80 confidence really mean 80% certain?
Close to it. Over our evaluation data, a score of 0.80 lines up empirically with about 80% correctness. Worth knowing when you set automation thresholds – a 0.60 threshold fires more often than a 0.80 one, at a predictable cost in false positives. More on how we diagnose here.
Does it handle images from plant apps?
The endpoint accepts any JPEG or PNG. Grow-log app, phone gallery, file drop on a NAS – same POST, same result.
PlantLab detects 31 cannabis conditions – nutrient deficiencies, pests, diseases, environmental stress – at 99%+ accuracy in 18ms. Structured JSON out, works with anything that speaks HTTP. Free tier at plantlab.ai. HA integration is open source at github.com/plantlab-ai/home-assistant-plantlab.
from
PlantLab.ai | Blog

It looks like your plant is getting frosty. White powder spreading across the leaves, that pale shimmer catching the grow light. Then you touch it, and your finger comes away white.
That's not trichome development. That's powdery mildew – and if you're seeing it now, the infection has been active inside your plant for up to two weeks already.
Powdery mildew is one of the most misidentified conditions in cannabis cultivation – not because the advanced stage is hard to recognize, but because early-stage colonies genuinely look like trichome buildup to the untrained eye. Growers see white on their leaves and feel reassured rather than alarmed. By the time the mistake is obvious, the fungus has spread.
This guide covers visual identification at every stage, how to distinguish PM from trichomes and other lookalikes, and what to do when you find it.
Powdery mildew on cannabis appears as white, flour-like patches on leaf surfaces that transfer to your finger when touched. Unlike trichomes – which are crystalline, sticky, and firmly attached – powdery mildew is fuzzy, powdery, and wipes off. It typically starts on older, lower leaves and can spread from a single infected plant to your entire grow within 5-10 days under favorable conditions.
Quick checklist: – White powdery patches on leaf surfaces (usually upper side) – Fuzzy texture, not crystalline or glittery – Transfers to your finger when touched – Wipes off with cloth (trichomes stay attached) – Started on older, lower leaves – Circular colony patterns, expanding outward
Powdery mildew is caused by obligate biotrophic fungi – primarily Golovinomyces species (formerly classified as Erysiphe) – that require a living plant host to survive. As an obligate biotroph, the fungus spends its first 7-10 days growing inside plant tissue, establishing a mycelial network before producing the visible white sporulation on the surface.
The practical implication: by the time you see powdery mildew, you're already two weeks behind.
This timing overlaps with the worst possible moment in the grow cycle. PM typically produces visible symptoms approximately two weeks into flowering – when plants are at their most developed and most valuable. A disease that becomes visible at week two of a nine-week flower has seven weeks to damage a mature crop.
Once sporulating, powdery mildew spreads through airborne spores called conidia. Unlike many fungal diseases that require water droplets to spread, PM spores travel through air and remain viable in typical grow room conditions. A single infected plant can contaminate an entire facility within 5-10 days.
This is not a slow disease. It spends two weeks being invisible, then spreads rapidly.
The fungal network is developing inside plant tissue. Nothing is visible externally. The only detection method during this phase is molecular PCR testing – available commercially but not practical for most growers as a daily routine.
What to do: Prevention only. No reactive treatment exists for pre-symptomatic infection.

What you see: – Fine white coating on upper leaf surface, often concentrated near veins – Circular “chalk-dust rings” as colonies grow radially from infection points – Small, discrete white spots (1-5mm diameter) resembling flour or powdered sugar – Patches separated by healthy-looking green tissue initially
This is when intervention is most effective. Catching PM at this stage – and responding within 48 hours – gives you the best chance of containing the infection before airborne spread reaches other plants.

What you see: – Spots grow larger and merge into confluent white coverage – Thick, prominent coating across entire leaf surfaces – Fuzzy, hair-like texture that can resemble spider webs or white cotton candy in severe cases – Affected leaves turn yellow (chlorosis) as photosynthetic capacity is reduced – Leaf death and necrosis in severely affected tissue – Contamination of flower bracts and bud sites
At this stage, individual plant treatment may still limit damage, but facility-wide spread is likely already underway.
Not all areas are equally at risk. Focus visual inspections here:
Check first: – Upper surfaces of older, lower leaves – Corners with poor airflow – Areas where leaves touch each other – Near the base of the plant
Check second: – Lower leaf surfaces – Leaf petioles and stems – Flower bracts and bud sites – Plants adjacent to any previously infected individual
High-risk conditions: – Humidity above 60% (optimal for PM at 95%+) – Temperature 68-86°F (20-30°C) – Poor air circulation or stagnant air pockets – Overcrowded plants with leaf-on-leaf contact – Recently introduced plant material (a common entry point)
One counterintuitive note: many growers assume low humidity prevents powdery mildew. It slows initial infection, but once PM is established, the fungus can continue growing even below 50% relative humidity. Humidity reduction is a preventive tool, not a cure.
This comparison matters because the error goes in both directions – growers see PM and think “good frost,” and they sometimes see heavy trichome coverage and worry it's disease.
| Feature | Powdery Mildew | Trichomes |
|---|---|---|
| Texture | Fuzzy, powdery, matte | Crystalline, glittery |
| Color | White to gray (can look dirty) | Translucent to milky white |
| Touch test | Transfers to finger, feels dusty | Sticky, doesn't transfer |
| Wipe test | Wipes off as powder | Firmly attached |
| Shape | Irregular patches with fuzzy edges | Distinct mushroom stalks (under magnification) |
| Location | Any leaf surface, starts on older lower leaves | Concentrated on flowers and sugar leaves |
| Distribution | Random colonies expanding outward | Uniform coating across surface |
| Smell | Musty in advanced infection | Resinous, aromatic |

Touch test. Lightly rub the white area with your finger. PM transfers as a dusty powder. Trichomes are sticky and stay on the plant.
Wipe test. Try to wipe the coating with a cloth. PM wipes off cleanly. Trichomes remain attached.
Magnification (10x loupe). Under magnification, trichomes show distinct mushroom-shaped heads on uniform stalks. PM looks like fuzzy, irregular filaments with no consistent structure.
If you're unsure after all three tests, assume it's PM and treat accordingly. The cost of a false positive – treating a healthy plant – is much lower than the cost of a false negative.
Both can appear during flowering, but they start in different places and look different up close.
Heavy spider mite webbing can be confused with PM in advanced stages.
Spray residue and fertilizer salt deposits are a common false positive.
Apply treatment to the infected plant and all immediate neighbors:
Inspect every other plant in the grow. Assume airborne spread has already occurred. Look for early colonies on older lower leaves of adjacent plants.
Environmental control (most effective): – Maintain humidity below 60%, below 45% in late flower – Install oscillating fans for continuous air movement – Prevent leaf-on-leaf contact through spacing and selective defoliation – Maintain stable temperature – fluctuations create favorable infection windows – Consider HEPA filtration between grow cycles to reduce ambient spore load
Cultural practices: – Inspect plants daily, particularly lower leaves and poor-airflow corners – Quarantine any new plant material for at least two weeks before introducing to your grow – Sterilize tools between plants – Remove dead leaves promptly – they create moisture pockets
Preventive treatments (before symptoms appear): – UV-C light treatment between grow cycles kills residual spores – Preventive potassium bicarbonate or copper sprays provide significantly better protection than reactive treatment after symptoms appear – IPM programs that address PM as a standing preventive protocol, not a reactive one
Powdery mildew is fundamentally a texture classification problem – distinguishing the powdery, irregular surface of PM colonies from the crystalline structure of trichomes and the smooth surface of healthy leaf tissue.
PlantLab's model analyzes:
Early-stage detection – colonies as small as 5mm – catches infection when treatment options are broadest. Automated daily scanning catches what manual inspection misses when you're managing more than a few plants.
Try it free at plantlab.ai – 3 diagnoses per day, no credit card required.
Can I smoke buds with powdery mildew? No. PM spores and fungal material can cause respiratory issues, particularly for anyone with lung conditions or compromised immunity. Infected flower should be disposed of, not consumed.
Does powdery mildew spread to other plants? Yes, rapidly. Airborne spores can reach every plant in a contained grow space within 5-10 days under favorable conditions. Isolate infected plants immediately and inspect everything nearby.
Can plants recover from powdery mildew? Mildly infected plants can survive and produce with aggressive treatment, but affected tissue doesn't recover. The goal is to stop the spread. Heavily infected plants in late flowering are usually a loss.
Does lowering humidity kill powdery mildew? It inhibits new infection but doesn't eliminate established colonies. PM can remain active even below 50% relative humidity once established. Humidity reduction is a prevention tool, not a cure for active infection.
When is powdery mildew most likely to appear? Typically around two weeks into flowering, when dense bud sites create microclimates with trapped humidity and reduced airflow. It can appear at any life stage given favorable conditions, but flowering onset is the highest-risk window.
PlantLab's AI detects 31 cannabis conditions – including powdery mildew, bud rot, and 7 specific nutrient deficiencies. Start diagnosing free at plantlab.ai.
from
PlantLab.ai | Blog

You won't smell it at first. By the time you do – that damp, musty sweetness coming off a cola that looked fine yesterday – you've already lost that bud and probably the ones touching it. You cut it open, and the inside is grey mush. A week from harvest.
Bud rot. It colonizes from the inside out, hiding in the densest parts of your canopy where airflow is worst and humidity is highest. By the time the exterior shows damage, the interior has been decomposing for days.
Root rot is the same story, underground. A plant that was drinking normally starts drooping despite a wet medium. You check the roots and they're brown, slimy, and smell like a swamp. The pathogen has been destroying the root system for a week before the canopy showed a single symptom.
What they share: the window between “detectable” and “devastating” is days, not weeks. Nutrient deficiencies give you time. Pest infestations give you time. Rot doesn't. It doubles and doubles, and by the time most growers catch it, the only option left is damage control.
Bud rot is caused by Botrytis cinerea, a fungus that colonizes dense flower clusters from the inside out. The first thing you'll notice: a sugar leaf or two within a cola turning yellow or brown while everything around it stays healthy. That isolated patch of dead tissue – not matching any nutrient pattern – is your warning. Pull the bud apart and you'll find grey or brown tissue, soft and wet, with grey-white fuzz (mycelium) growing through it.
Root rot comes from several pathogens – water molds like Pythium (especially common in hydro) and true fungi like Fusarium (which hits both soil and hydro). The first sign is a plant that droops for no obvious reason even though you just watered. Growth slows. Roots shift from white to tan or brown. By the time the roots are dark brown, slimy, and smell rotten, the plant may not recover.
What separates rot from everything else: it's local. One cola dying while the rest of the plant looks fine. One section of roots going brown while others stay white. Nutrient deficiencies hit the whole plant uniformly. Rot has an epicenter.
Bud rot starts where you can't see it. Botrytis spores land on flower tissue, germinate in the humidity, and go straight for the densest part of the bud – the interior, where moisture sits longest. Outside? Green and healthy. Inside? Grey mush.
Doesn't matter how many cycles you've run. You can eyeball your canopy every day and miss it completely, because the infection is in the one place a surface inspection doesn't reach.
The first visible sign is almost always a single sugar leaf – or a small cluster of them – within a cola that yellows and wilts while the rest of the bud stays green. This is easy to dismiss as a light-deprived leaf dying naturally. It isn't.
What to look for: – A single yellowing/browning leaf within an otherwise healthy cola – The leaf pulls out easily with a slight tug (the stem base is already rotting) – The area around the discolored leaf feels softer or more moist than adjacent tissue – A faint musty smell when you press your nose close to the bud
At this point, that bud is gone. Everything you do now is about keeping it from spreading.
Bud rot isn't random. It goes where the moisture is:
Your main cola. Any thick, tightly-packed bud where moisture can't escape. Spots deep in the canopy where leaves overlap and trap humidity. Anywhere a fan leaf rests against a bud, creating a little moisture pocket. And anywhere the bud surface is already damaged – caterpillar bore holes, supercrop scars, anything that gave the fungus a way in.
If you're only going to inspect one thing daily in late flower, make it the main cola and any bud that's touching a fan leaf. That's where bud rot lives.
Root rot looks like underwatering. Plant's drooping, so you water it. The drooping gets worse, so you water more. And now you're feeding the exact conditions that are killing the roots.
The tell: is the medium already wet? Overwatering droop and root rot droop look identical from the canopy. The answer is always below the surface.
Root rot behaves differently across growing media:
| Factor | Hydroponic (DWC/NFT) | Coco Coir | Soil |
|---|---|---|---|
| Primary pathogen | Pythium (also Fusarium) | Pythium / Fusarium | Fusarium / Phytophthora |
| Speed of onset | Fast (2-5 days) | Moderate (5-10 days) | Slow (7-14 days) |
| First sign | Slimy roots, off smell | Drooping, slow drying | Persistent droop |
| Temperature trigger | Reservoir > 22C / 72F | Overwatering + warm | Overwatering + poor drainage |
| Visibility | Easy (roots exposed) | Moderate (can pull back medium) | Hard (roots buried) |
Hydroponic growers have one advantage here: you can actually see the roots. Check them daily. One brown root tip caught early is a ten-second trim. Caught late, it's a dead plant.
Most treatment guides bury the uncomfortable truth: by the time you've confirmed rot, your best options are already behind you. Both conditions double fast once established, and the pathogens produce spores (bud rot) or zoospores (root rot) that reinfect tissue you've already treated.
For bud rot: – Day 1-3: Remove affected cola plus 2-3cm of healthy tissue around it. Sterilize cutting tool between cuts. Drop humidity below 50%. Increase airflow. The remaining harvest is likely safe. – Day 4-7: You're removing multiple colas. Some adjacent buds may be internally compromised but not yet showing symptoms. Harvest early if possible. – Day 7+: Salvage what you can. Anything near the infected area should be assumed compromised.
For root rot: – Early stage: Hydrogen peroxide root drench (3ml of 3% H2O2 per liter for mild cases, up to 5ml/L for aggressive treatment), drop reservoir temperature below 20C / 68F, increase dissolved oxygen. Beneficial microbes (Bacillus, Trichoderma) as a preventive – not a cure, but they compete with pathogens. Note: H2O2 kills beneficials too, so don't use both simultaneously. – Moderate stage: Root pruning (remove all brown tissue), full reservoir change, lower temperature, and hope the remaining root mass can support the plant. – Advanced: The plant is dying. What's left of the root system can't support it. Sometimes the honest move is to pull it and focus on the plants you can still save.
Every day you don't catch it, your options get worse. Two days is the difference between losing one cola and losing a quarter of the canopy.
Early rot symptoms can look like nutrient deficiencies, overwatering, or heat stress. The giveaway is where the damage is concentrated.

| Symptom | Bud Rot | Root Rot | Nitrogen Deficiency | Overwatering |
|---|---|---|---|---|
| Affected area | Single cola or bud site | Whole plant from bottom up | Whole plant, lower leaves first | Whole plant |
| Symmetry | Asymmetric – one point of origin | May be symmetric | Symmetric | Symmetric |
| Progression | Spreads from one spot outward | Bottom-up canopy decline | Bottom-up, gradual | Uniform droop |
| Smell | Musty, damp | Sour, foul root zone | None | None |
| Physical touch test | Soft, wet bud interior | Brown, slimy roots | Leaves feel normal | Leaves feel heavy |
| Recovers with adjustment | No – removal is the only fix | Rarely once advanced | Yes, within days | Yes, within hours |
If damage is spreading from one spot and doesn't respond to feed or environment changes – treat it as rot. Verify later. You don't have time to be wrong slowly.
Rot is an environmental disease. The pathogen is probably already in your grow room – Botrytis spores are everywhere. But it needs specific conditions to take hold.
Two numbers. That's all you need to remember: flower room humidity below 60%, reservoir temperature below 22C / 72F. Not arbitrary – those are the inflection points where Botrytis and Pythium growth rates drop off hard. Stay below them and you're making it difficult for the pathogen. Go above and you're rolling out a welcome mat.
With rot, speed is the whole game. Early symptoms look like half a dozen other things, and most growers burn their response time treating the wrong problem.
PlantLab's vision model detects both bud rot and root rot as distinct conditions. You get a specific diagnosis with a confidence score, not “something might be wrong with your plant.” The model was trained exclusively on cannabis images – over 2,000 verified bud rot samples alone – across every severity stage from the first discolored leaf to full colonization.
If you're growing one plant, daily inspection is enough. But for a larger canopy – or if you're running cameras on a timer – a system that flags bud rot at 6 AM on a Tuesday before you walk into the room is worth having.
Try it free at plantlab.ai.
Fast. An entire cola can go from first visible symptom to grey mush in 48-72 hours under favorable conditions (humidity above 60%, poor airflow). During that window, spores are landing on neighboring buds and starting new infections that won't show for days. Inspect your densest colas daily in late flower. There's no substitute.
No. Once Botrytis is inside the flower structure, that bud is done. Cut the affected cola plus a margin of healthy tissue around it, sterilize your tool between cuts, and get humidity down. Everything after detection is about containment, not cure.
It kills Pythium on contact, but it also nukes every beneficial microbe in the root zone. Think of it as a reset button, not a treatment plan. Use it alongside temperature correction (below 22C / 72F) and better oxygenation. Once most of the roots are brown and slimy, H2O2 won't save the plant – there's not enough healthy root mass left to recover from.
Rotting roots can't absorb water even when they're sitting in it. The plant wilts, you water more, the root zone stays waterlogged, and the pathogen thrives. If a plant droops and the medium is already wet, stop watering and check the roots.
Absolutely. Botrytis cinerea produces airborne spores, and disturbing an infected bud – touching it, cutting it, even a fan blowing across it – sends them into the air. They land on neighboring plants and start the cycle over. When you remove infected colas, work carefully and bag the tissue immediately. Some growers hit neighboring plants with a preventive fungicide application after removal, which isn't a bad idea.
from
PlantLab.ai | Blog

You adjusted your cal-mag for two weeks. The yellowing got worse. Then you saw the webbing.
That's how most growers discover spider mites – not when the problem starts, but when it's already out of control. The early damage looks so much like a nutrient deficiency that your first instinct is to adjust the feed. Meanwhile, a single female mite is producing thousands of descendants in a month.
Spider mites are the most destructive pest in indoor cannabis cultivation. Not because they're hard to kill – they aren't, when caught early – but because their early symptoms mimic nutrient problems so convincingly that growers lose their detection window treating the wrong thing entirely.
This guide covers visual identification at every stage, how to tell mite damage from a deficiency, and what actually works for treatment.
Spider mites on cannabis produce tiny yellow or white speckles (stippling) on upper leaf surfaces where mites feed from below. Unlike nutrient deficiencies – which cause broad, uniform color changes across leaves – stippling appears as distinct pinprick dots scattered irregularly across the leaf. The damage is caused by Tetranychus urticae (two-spotted spider mite), an arachnid that punctures individual plant cells and drains their contents. By the time webbing is visible, the colony has been feeding for weeks.
Quick checklist: – Tiny yellow/white pinprick dots on upper leaf surface – Dots are irregular and scattered, not following veins – Leaf undersides show tiny moving specks (mites are 0.3-0.5mm) – Fine webbing between leaf tips or at branch junctions (advanced) – Damage starts on lower/inner canopy where airflow is poorest – Leaves eventually bronze, curl, and drop
The single most common spider mite mistake has nothing to do with treatment. It happens at identification.
Early stippling – those tiny yellow dots where mites have punctured cells – looks like the beginning of a calcium deficiency or light stress. The dots are small, scattered, and appear on older growth first. A grower sees yellowing dots on lower leaves and reaches for the cal-mag bottle. Two weeks of feed adjustments later, the dots have spread, the plant looks worse, and then the webbing appears.
This is not a knowledge failure. It's a pattern recognition problem. The visual difference between early mite stippling and early nutrient deficiency is subtle enough that experienced growers miss it regularly.

| Feature | Spider Mite Stippling | Calcium Deficiency | Magnesium Deficiency |
|---|---|---|---|
| Pattern | Irregular pinprick dots | Irregular brown spots | Interveinal yellowing |
| Distribution | Scattered randomly across leaf | Concentrated on newer growth | Starts on older leaves |
| Symmetry | Asymmetric, random | Roughly symmetric | Symmetric between veins |
| Leaf underside | Tiny mites or eggs visible | Clean | Clean |
| Texture | Leaf feels slightly rough/gritty | Spots may feel crispy | Leaf stays smooth |
| Progression | Dots multiply, never merge into bands | Spots expand and merge | Yellowing expands between veins |
| Touch test | Gritty feel from mite debris | Normal | Normal |
The diagnostic key: flip the leaf over. Nutrient deficiencies don't leave anything on the underside. Spider mites leave everything there – adults, eggs, shed skins, webbing. A 10x loupe makes this definitive, but even a phone camera zoomed in on the leaf underside will show the difference.
Spider mites reproduce faster than almost any pest a cannabis grower will encounter.
This is exponential growth in the literal sense. The population you can't see on Monday is visible by Friday and webbing by the following Monday. The detection window – the gap between “early enough to treat easily” and “too late for simple solutions” – is approximately 5-7 days.
Every day of misdiagnosis as a nutrient issue is a day lost in that window.

Mites have arrived but the colony is small. Fewer than 10 adults on the plant. No visible damage to the naked eye.
What to look for: Nothing you can see without magnification. Preventive inspection with a 10x loupe on leaf undersides is the only detection method during this phase – or an AI that can catch the earliest stippling pattern in a leaf photo before your eye does.
What you see: – Scattered yellow-white dots on upper leaf surfaces – Dots are pinprick-sized, irregular spacing – Lower and inner canopy leaves affected first – Leaves may appear slightly dull or dusty
This is the critical detection window. The damage is visible but the population is still manageable. Treat now and you win. Wait, and you're chasing exponential growth.
What growers confuse it with: Calcium deficiency, magnesium deficiency, early light stress, pH fluctuation damage. The distinguishing test: check the leaf underside with a loupe or zoomed phone camera.
What you see: – Stippling thickens into visible patches of yellow/bronze discoloration – Fine webbing appears at leaf tips and where leaves meet stems – Leaf edges may curl upward – Multiple plants now show symptoms (airborne spread via “ballooning” on silk threads)
Webbing marks the transition from “problem” to “crisis.” The silk isn't just housing – it protects colonies from predators and spray treatments. Once webs are established, contact sprays have to penetrate the silk to reach the mites.
What you see: – Dense webbing covering bud sites, connecting leaves – Leaves are bronzed, curled, and dropping – Mites visible as tiny moving dots on webbing – Plant growth has visibly slowed or stopped – Webbing on flowers makes bud unusable
At this stage, the plant is losing more photosynthetic capacity than it can replace. During flower, this level of infestation is often a total crop loss for affected plants. The mites are feeding on sugar leaves and bract tissue, leaving webbing embedded in the flower structure. Even if you kill every mite, the webbing and fecal matter remain.
Spider mites prefer warm, dry, still air – the conditions that exist in the center and lower canopy of most indoor grows.
Check first: – Undersides of lower and inner canopy leaves – Where two leaves overlap (creates still-air microclimate) – Near intake vents (common entry point) – Any plant closest to heat sources
Check second: – Leaf undersides on middle canopy – Branch junctions where stems create sheltered pockets – Nearby houseplants, clones, or recently introduced plant material
High-risk conditions: – Temperature above 27°C (80°F) and rising – Humidity below 40% RH – Stagnant air in lower canopy – New clones or plants introduced without quarantine – Adjacent rooms or gardens with ornamental plants
One fact most growers don't realize: spider mites travel on clothing, pets, and skin. If you've been in a garden with mites and walk into your grow room, you may be the vector. This is why quarantine protocols matter even for indoor-only grows.
This matters more than you'd think. Spider mites aren't insects. They're arachnids – closer to ticks and spiders than to aphids or thrips. A lot of insecticides just don't work on them, and growers figure this out the expensive way: they buy whatever pest spray the grow shop recommends, apply it twice a week for a month, and the mites keep spreading.
If a product label says “insecticide” but doesn't specifically list mites or arachnids, it probably won't work. You need a miticide (specifically targets mites) or a broad-spectrum acaricide (targets arachnids generally). Some biologicals and organic options work by physical mechanisms – suffocation, desiccation – that don't depend on the pest's taxonomy. These are often the safest first-line choice.
Spider mites develop pesticide resistance at a rate that makes most agricultural pests look slow. With a 7-day generation cycle, resistance emerges in weeks, not seasons. Some strains of T. urticae are resistant to dozens of active ingredients simultaneously.
Worse: some pesticides cause “mite flaring” – the surviving mites respond to the chemical stress by increasing their reproductive rate by up to 30%. The intuitive response of “spray harder, spray more” can accelerate the infestation rather than control it.
Single-product treatment strategies fail. Always rotate between different modes of action.
Immediate response (first 48 hours): 1. Isolate affected plants if possible 2. Remove and dispose of heavily infested leaves (bag them, don't compost) 3. Spray leaf undersides thoroughly with a contact miticide or biological
Biological controls: – Phytoseiulus persimilis – predatory mite that feeds exclusively on spider mites. Effective in vegetative growth and early flower. Needs humidity above 60% to thrive. – Neoseiulus californicus – predatory mite that tolerates lower humidity and also eats thrips. Better for dry grow rooms. – Amblyseius andersoni – generalist predatory mite, survives without prey by eating pollen. Good for preventive releases.
Organic sprays (moderate infestations): – Neem oil (azadirachtin) – disrupts feeding and reproduction. Apply to leaf undersides only. Do not use in flower – affects taste and may not fully degrade. – Insecticidal soap (potassium salts of fatty acids) – kills on contact by desiccation. Must directly contact the mite. Repeat every 3-5 days for 3 applications to catch new hatchlings. – Spinosad – organic-approved, effective on thrips but weak against mites on its own. Can supplement a rotation but shouldn't be a primary miticide.
Spray rotation protocol: – Week 1: Product A (e.g., insecticidal soap) – Week 2: Product B (e.g., neem oil) – Week 3: Product A again (or a different miticide) – Never use the same active ingredient twice in a row
This is where most growers panic, and for good reason. During flower, almost everything that kills mites also ruins buds.
Safe in flower: – Predatory mites (biological control – no residue, no taste impact) – Water rinse with slightly elevated pressure (dislodges mites physically, must reach undersides) – Cold snap trick: drop temperature to 15°C (60°F) for 3 days if possible. Mite reproduction nearly stops below 18°C (65°F). This buys time for predatory mites to work.
Avoid in flower: – Neem oil (taste contamination, doesn't fully degrade on flower tissue) – Pyrethrin sprays (residue on buds) – Sulfur (burns trichomes, affects terpenes) – Any systemic product (absorbed into plant tissue including flower)
If webbing is on buds: The honest answer is that those buds are compromised. Webbing contains fecal matter and shed mite skins that don't wash off. You can salvage the plant by removing affected flowers and protecting remaining buds with predatory mites, but heavily webbed buds should be discarded.
A few euros spent preventing mites saves hundreds in lost crop. Prevention beats treatment every time, especially with a pest that breeds this fast.
Environmental controls: – Keep humidity above 50% RH during veg (mites thrive in dry conditions) – Ensure airflow reaches the lower canopy (oscillating fans, open plant structure) – Run temperatures below 27°C (80°F) when possible – HEPA filter on intake if growing in an area with outdoor mite pressure
Good habits: – Quarantine new plants for 7-14 days before introducing to your grow – Change clothes before entering grow room if you've been in other gardens – Inspect leaf undersides weekly with a 10x loupe – make it routine, not reactive – Remove dead leaves and debris from the grow space (harboring sites) – Avoid overly dense canopy – defoliate lower growth that gets no light and creates still-air pockets
Preemptive predators: – Release Amblyseius andersoni or N. californicus at transplant. These predatory mites establish a background population that intercepts spider mites before colonies form. Cost: roughly €20-30 per release for a small grow, every 4-6 weeks.
The spider mite problem is a timing issue. The window between “just arrived” and “exponential growth” is about 5-7 days. Most growers catch mites after stippling is already obvious – right at the edge of that window, or past it.
The main reason growers miss that window isn't inattention. Early stippling – those first scattered yellow dots where mites have punctured cells – looks almost identical to the start of a calcium or magnesium deficiency. Same distribution, same size, same location on older growth. A grower sees the dots, checks pH, adjusts the feed, and waits a week for results. By the time the nutrient hypothesis is ruled out and a loupe comes out, mites have had 7-10 days of uncontested growth. At one generation per week, that adds up.
PlantLab's model covers 31 cannabis conditions including spider mite damage. It catches the stippling pattern at the 10-dot stage, from a routine photo. Not a replacement for the loupe – nothing is – but it flags the pattern before you've mentally filed it as “probably cal-mag” and moved on.
Catching mites at day 7 instead of day 14 is the difference between wiping down some leaves and losing a crop.
Free at plantlab.ai – 3 checks a day.
How do I tell spider mite damage from a nutrient deficiency? Flip the leaf. Spider mite damage shows as scattered pinprick dots on top with mites, eggs, or webbing underneath. Nutrient deficiencies cause broader color changes with clean leaf undersides. A 10x loupe on the underside is the definitive test.
Can I see spider mites without a magnifying glass? Adults are barely visible to the naked eye (0.3-0.5mm) as tiny moving specks on leaf undersides. Eggs and juveniles are too small to see without magnification. By the time mites are easily visible, the colony is large. Use a loupe or phone camera zoom for early detection.
How fast do spider mites spread between plants? In optimal conditions (above 27°C / 80°F, below 40% RH), mites can move from one plant to adjacent plants within 24-48 hours. They also “balloon” on silk threads carried by air currents, reaching plants across a room. A single infested plant can become a room-wide problem in 5-10 days.
Will neem oil get rid of spider mites? Neem works as part of a rotation, not as a standalone. It disrupts feeding and reproduction but doesn't kill on contact, and mites build resistance to it quickly. Rotate with insecticidal soap and other modes of action. And never use it during flower – it doesn't come off.
What kills spider mites instantly? Insecticidal soap and pyrethrin kill on contact, but only what they touch. You'll miss eggs. Plan for 3 rounds over 2 weeks to catch hatching cycles.
from
PlantLab.ai | Blog

Every time you water, a little cloud of dark flies lifts off the soil, drifts around, and settles back down. They do not bite, they do not swarm the plant, and every forum thread calls them harmless. So you ignore them.
Meanwhile the plant is drooping. Lower leaves are yellowing, growth has slowed, and nothing about your feed or pH explains it. You start treating for overwatering, maybe root rot – and the real cause is still hovering over the pot.
Fungus gnats are the most under-estimated pest in indoor growing. The adults genuinely are close to harmless. The problem is their larvae: tiny translucent worms living in the top layer of wet medium, feeding on root hairs and opening wounds that let real root pathogens in. Because the above-ground symptoms look exactly like a watering or root problem, growers spend weeks fixing the wrong thing while the population builds.
Clearing them is not hard once you know what you are looking at. Getting there is the hard part – past the assumption that the flies are harmless and the droop is just a watering mistake. Here is how to confirm it is gnats, rule out the problems they mimic, and break the cycle instead of swatting adults forever.
Fungus gnats are small dark flies, 2-4mm, that stay near the surface of damp soil and fly weakly in short hops when disturbed. The damage is done by the larvae – translucent, thread-thin worms with a distinct black head – which live in the top 1-2cm of the medium and feed on fine roots.
Quick checklist:
The decisive check is simple: are there flies at the soil surface, and is the medium consistently wet? Two yeses is fungus gnats until proven otherwise. Scratch back the top centimetre and look for the larvae to confirm.
Fungus gnats damage roots, and root damage above ground looks like every other root problem: droop, slowed growth, yellowing that creeps up from the bottom. So the symptoms get filed as overwatering or root rot, and the flies get dismissed as a coincidence.
The three conditions live in the same wet-soil neighbourhood, which is exactly why they get confused – and often why they show up together. Chronically wet medium is what invites gnats, drowns roots, and breeds rot all at once.
| Feature | Fungus gnats | Overwatering | Root rot |
|---|---|---|---|
| Flies at soil surface | Yes | No | No |
| Wet, slow-draining medium | Yes | Yes | Usually |
| Wilt pattern | Yellowing, gradual droop | Puffy droop after watering | Persistent wilt, does not recover |
| Roots | Nibbled fine roots, entry wounds | Pale, waterlogged | Brown, slimy, foul-smelling |
| Fix direction | Dry back + kill larvae | Water less, improve drainage | Sterilize, improve oxygen, often too late |
The tell that separates them from the rest is the flies. Overwatering and root rot do not put insects in the air over your pots. If you see the flies and the wet medium together, gnats are in the mix – and there may be more than one problem to solve.

The adults are a nuisance and a warning sign, not the damage. The larvae are the damage.
Living in the wet top layer, fungus gnat larvae graze on root hairs and the fine feeder roots that do most of a plant's water and nutrient uptake. In a seedling or a young clone with a small root system, that alone can stall or kill the plant. In a larger plant the direct feeding matters less – but every feeding wound is an open door. Fungus gnats are a known vector for soil pathogens like Pythium and Fusarium, moving spores through the medium and giving them a wound to colonize. A gnat problem left alone often becomes a root-rot problem, which is a far worse thing to fix.
This is why “just live with a few flies” is bad advice. The flies are the visible edge of a root-zone problem that gets more expensive the longer it runs.
Fungus gnats are a symptom of one thing above all: a topsoil that never dries out. Their eggs and larvae need constant surface moisture, so the root cause is almost always the watering routine or the medium.
Fix the moisture and you remove the habitat. Everything below is about killing the current generation while you do that.
The winning approach hits two targets at once: dry out the surface the larvae need, and kill the larvae and adults directly. Do one without the other and the population just rebuilds.
Predatory options like Hypoaspis (soil-dwelling mites) also work well for growers who prefer a fully biological program.
Bti and a dry-back clear fungus gnats reliably. What trips growers up is getting to that point, because gnats, overwatering, and root rot all arrive together in wet soil and all droop and yellow the same way. Weeks go into treating a watering problem while the larvae keep working on the roots.
PlantLab covers 31 cannabis conditions, fungus gnats among them, and returns a calibrated-confidence read from a single photo in about 18 milliseconds. Where flies are visible near the medium, it is built to call fungus gnats rather than let the droop get filed as generic overwatering – the misread that lets larvae keep working on the roots for another two weeks. It is not a substitute for scratching back the topsoil and looking – that is always the confirmation – but it points you at the soil surface early, before a gnat problem turns into a root-rot problem.
Free at plantlab.ai – 3 checks a day.
Are fungus gnats harmful to cannabis? The adult flies are mostly a nuisance, but the larvae feed on fine roots in the top layer of wet soil and open wounds that let root pathogens in. On seedlings and clones they can stall or kill the plant outright; on larger plants they set up the conditions for root rot. They are worth clearing early.
How do I tell fungus gnats from root rot? Fungus gnats put small dark flies in the air over your pots; root rot does not. Root rot shows brown, slimy, foul-smelling roots and a persistent wilt that watering never fixes. The two often occur together in chronically wet medium, so treat the gnats and check the roots.
What kills fungus gnats fast? Bti (mosquito bits or dunks) soaked into your water kills the larvae, and yellow sticky cards knock down the adults. Pair that with letting the top 2-3cm of soil dry out between waterings. For a stubborn or recurring case, add beneficial nematodes.
Why do I keep getting fungus gnats? Because the topsoil is staying wet. Their eggs and larvae need constant surface moisture, so the fix is a dry-back watering routine, better drainage, or bottom-watering. A dry surface removes the habitat and prevents the next generation.
Do fungus gnats go away on their own? Rarely, as long as the medium stays wet – they keep breeding in the moist surface layer. Drying out the top of the soil and running Bti or sticky cards is what actually ends the cycle.
from
blog//x2600.cc
good title, eh?
“You could have it all, My empire of dirt, I will let you down, I will make you hurt”
A note to self, to not let others become too attached. I will near always let them down, in the end
Other news: heading back to apartment in Crystal City (long story). Will shower, shave, eat, relax.
Blogging as well. And IRC. And lurking. And emails. And texting. And browsing. And AC. Etc etc
from Waybuu
People of the world – especially those that represent the ‘power’ in this world – have created a place of deceit and willful deception. And it sprinkles throughout the land like ultimate truth. One thing is a given: connected within social media; controlled and scripted.

On second thought and having just went for lunch and sliding down the most delicious smoothie, I said to myself, “You know what? What the hell are you writing that load of crap for today?” So I stopped and here we are, in such a pleasing mood.
Let’s get one thing straight: don’t distract your day because people have trouble decoding a rabbit hole, owned by the oligarchs-wanna-be. Might as well go for a smoothie.
Enjoy this pic of two crows on a wire with the morning moon.
W
from
Roscoe's Quick Notes

Today's MLB game of choice has my Texas Rangers playing the Chicago White Sox in the second game of a three-game set. The White Sox won the first game last night by the score of 10 to 3. Tonight”s game is scheduled to start at 7:05 PM CDT. As I usually do, I'll follow the game's score and stats in real time via MLB's Gameday Service where we can also find links to the radio-call of the game provided by announcers of either team we choose.
And the adventure continues.
from Unvarnished diary of a lill Japanese mouse
JOURNAL
Je te regarde et mon cœur s'affole, tu bouges si joliment, on a l'impression que tu danses, puis mes yeux tombent dans les tiens et c'est le vertige. Comment des yeux humains peuvent être aussi bleus ? Tu me souris je te tends les bras oh ton odeur !
#erotica