10 interesting stories served every morning and every evening.

Client Challenge

www.lemonde.fr

A re­quired part of this site could­n’t load. This may be due to a browser ex­ten­sion, net­work is­sues, or browser set­tings. Please check your con­nec­tion, dis­able any ad block­ers, or try us­ing a dif­fer­ent browser.

Google Search Is Dying. What Comes Next Is Worse

thewalrus.ca

It turns out a lot of peo­ple ask Google when the sun will set. It’s a good fact to know. Getting a ball­park on twi­light can help you plan a bike ride, bar­be­cue, or a per­fectly timed promposal. The oc­cur­rence lasts only be­tween two and a half and four min­utes, and it hap­pens dy­nam­i­cally de­pend­ing on your prox­im­ity to the equa­tor, mak­ing it a tricky event to keep tabs on.

Recently, sun­set chasers have no­ticed that Google’s new AI sum­maries started in­vent­ing times. I had the pro­jec­tor set up out­side and was wait­ing for the sun to set,” wrote one Facebook user in Colorado Springs, but to my sur­prise I was sim­ply liv­ing in the past. AI in­formed me the sun­set had al­ready hap­pened.” It’s a small er­ror, even comic. But these episodes point to a big­ger prob­lem: the world’s dom­i­nant search en­gine now strug­gles over ba­sic facts. The com­pany that built its rep­u­ta­tion re­turn­ing the right an­swer has, as one tech ex­pert ob­served, lost its edge.”

Still, we keep googling be­cause we keep ex­pect­ing the in­ter­net to know things. That stub­born hope un­der­pins al­most every ar­gu­ment about in­for­ma­tion ac­cess. When search wors­ens, we grum­ble that Google has been en­shit­ti­fied. When AI hal­lu­ci­nates, we say the model is sloppy. When mis­in­for­ma­tion spreads, we re­as­sure our­selves the truth is still out there,” wait­ing pa­tiently for us to string to­gether a bet­ter query. Even as the web is pol­luted by AI slop, we cling to the be­lief it’s a skills prob­lem and share search tips.

But what if the truth” is harder to find on­line be­cause the in­fra­struc­ture that once stored it is break­ing down? Some of that is wear and tear. Link rot erases pages every day. Key sec­tions of the United States Constitution briefly dis­ap­peared from the Library of Congress web­site be­cause of a cod­ing er­ror. But by in­ter­pos­ing an er­ror-prone AI be­tween us and an orig­i­nal source, Google has en­sured that if an un­der­ly­ing page ex­ists, it can be­come prac­ti­cally undis­cov­er­able. Meanwhile, pol­lu­tion is now mov­ing up­stream: 404 Media re­ports com­pa­nies are plant­ing con­tent on Reddit to in­flu­ence the an­swers gen­er­ated by AI search, con­t­a­m­i­nat­ing the pub­lic record from which those sys­tems draw their sum­maries.

The cor­pus is col­laps­ing in real time. This de­graded dig­i­tal space should force a broader un­der­stand­ing of cul­tural sov­er­eignty. Right now, the de­bate is framed largely as a fight over whether for­eign mega plat­forms like Netflix, YouTube, or Spotify should sup­port Canadian con­tent. That charged con­ver­sa­tion side­steps the deeper ques­tion: Who pre­serves and con­trols ac­cess to our cul­tural record—not just in the pre­sent but for gen­er­a­tions af­ter?

Search can no longer pre­tend to be a neu­tral gate­way to a sta­ble body of knowl­edge. While the web has al­ways been or­ga­nized around in­ter­me­di­aries that shape what sur­vives on­line and who sees it, the in­ter­net’s archival func­tion is to­day break­ing down un­der re­lent­less pres­sure from stake­hold­ers with very dif­fer­ent—and of­ten con­flict­ing—pri­or­i­ties. At least book ban­ning hap­pens in your face: it has vil­lains, school board meet­ings, sen­sa­tional head­lines. Digital era­sure is more in­sid­i­ous and, in some ways, more dev­as­tat­ing. A banned book can still be found. A scrubbed web­page can dis­ap­pear so com­pletely few peo­ple would ever re­al­ize it was there.

Consider what hap­pened to FiveThirtyEight, an American web­site that fo­cused on opin­ion poll analy­sis, pol­i­tics, eco­nom­ics, and sports blog­ging. The Walt Disney Company had owned the blog through its sub­sidiaries for more than a decade. Its founder, Nate Silver, left in 2023, and by March 2025, the re­main­ing staff had been laid off. Once Disney con­cluded the site was no longer an ac­tive as­set—no new jour­nal­ism and no mean­ing­ful ad­ver­tis­ing rev­enue—it straight up deleted the en­tire archive.

The re­trieval cri­sis has reached even Wikipedia, one of the world’s most sig­nif­i­cant vol­un­teer-run pub­lic knowl­edge re­sources. For years, search en­gines sent bil­lions of view­ers to its pages. But now, AI sys­tems scrape and in­gest Wikipedia’s con­tent di­rectly when pre­sent­ing their re­sults, elim­i­nat­ing the need for users to click through. Wikipedia has be­come the in­fra­struc­ture of its own demise: dwin­dling traf­fic means at­ten­tion and do­na­tions no longer re­li­ably flow back to the en­cy­clo­pe­dia to keep it alive.

What has been hap­pen­ing to the Internet Archive is just as alarm­ing. A non-profit dig­i­tal li­brary, it col­lects and makes avail­able ma­te­ri­als that might oth­er­wise van­ish—from au­dio record­ings to his­tor­i­cal doc­u­ments to books. It is best known for the Wayback Machine, a ser­vice that has cap­tured hun­dreds of bil­lions of snap­shots of the web at dif­fer­ent points in time. Journalists, re­searchers, his­to­ri­ans, lawyers, and the pub­lic use it to re­cover deleted pages, ver­ify past state­ments, and doc­u­ment changes to on­line con­tent. The Wayback Machine is the clos­est thing the web has to a fail-safe backup mem­ory.

The over­all pro­ject, how­ever, is not only buck­ling un­der the en­gi­neer­ing strain of in­dex­ing and stor­ing an ever-grow­ing repos­i­tory of in­for­ma­tion but it is also be­ing bat­tered by cy­ber­at­tacks and costly lit­i­ga­tion. After pub­lish­ers suc­cess­fully sued the Internet Archive over its dig­i­tal lend­ing pro­gram, call­ing it unau­tho­rized copy­ing, news or­ga­ni­za­tions started block­ing the Wayback Machine’s crawlers out of fear that archived pages can pro­vide AI com­pa­nies with an in­di­rect source of copy­righted ma­te­r­ial. Each new re­stric­tion lim­its the archive’s abil­ity to act as a com­pre­hen­sive back­stop.

Even the in­creas­ing use of ephemeral for­mats like Instagram Stories and WhatsApp sta­tus up­dates means that large por­tions of cul­tural, so­cial, and po­lit­i­cal com­mu­ni­ca­tion are never con­served in the first place. As a so­ci­ety, we can prob­a­bly sur­vive bad search re­sults and come up with an­other way to sched­ule a sun­set make-out ses­sion. But we can’t as­pire to sov­er­eignty if we can’t re­tain and re­trieve our col­lec­tive mem­ory.

For now, you can still use Google to find out how other gov­ern­ments are build­ing al­ter­na­tives to it. France has come to treat for­eign plat­forms as a threat to both tech­no­log­i­cal sov­er­eignty and na­tional cy­ber­se­cu­rity. In a pre­scient late 2018 move, the coun­try’s na­tional as­sem­bly and the min­istry of the armed forces be­gan adopt­ing Qwant, a French ser­vice hosted in Europe. Qwant op­er­ates on a dif­fer­ent model: it does­n’t store search data, sell per­sonal in­for­ma­tion, or use tar­geted ad­ver­tis­ing based on your brows­ing his­tory. The European Parliament, with its 720 elected mem­bers as well as thou­sands of ad­min­is­tra­tive staff, also made the switch, re­flect­ing the grow­ing be­lief that in­for­ma­tion re­trieval is a strate­gic as­set in its own right.

Every small breakup with Big Tech cracks open the door wider on what’s pos­si­ble. France now re­quires civil ser­vants to use Tchap, a home­grown mes­sag­ing app re­plac­ing for­eign plat­forms such as WhatsApp and Signal in gov­ern­ment com­mu­ni­ca­tions. European gov­ern­ments have fol­lowed suit on the push away from Silicon Valley, swap­ping out Microsoft prod­ucts with open-source al­ter­na­tives across hun­dreds of thou­sands of work­sta­tions. The European Commission just an­nounced it would join W Social, a new in­de­pen­dent so­cial site cre­ated by a Swedish start-up. As Denmark’s dig­i­tal­iza­tion min­is­ter, Caroline Stage Olsen, put it: Far too much pub­lic dig­i­tal in­fra­struc­ture is to­day tied up with very few for­eign sup­pli­ers. This makes us vul­ner­a­ble.”

That fight­ing mood is push­ing some coun­tries to go even fur­ther. In a rul­ing that could be­come a land­mark prece­dent, a German court re­cently held Google li­able for false state­ments gen­er­ated by its AI overview fea­ture. The case arose af­ter Google’s AI wrongly linked two pub­lish­ing com­pa­nies to scammy busi­ness prac­tices. Because the search en­gine ex­tracts and rewrites in­for­ma­tion in its own words, the court rea­soned, it is do­ing more than im­par­tially point­ing users to­ward the pub­lic record. It’s au­thor­ing an en­tirely new layer of con­tent—and with that comes ed­i­to­r­ial re­spon­si­bil­ity. If for­eign tech­nol­ogy firms can no longer claim to be a pas­sive con­duit for in­for­ma­tion, gov­ern­ments could have greater lat­i­tude in reg­u­lat­ing them.

Google is ap­peal­ing the de­ci­sion, but the point has been made: look­ing af­ter the in­for­ma­tion econ­omy can no longer be a side pro­ject for un­der­funded in­sti­tu­tions. Wikipedia is as mirac­u­lous as the Wayback Machine is in­dis­pens­able. Still, we need to stop pre­tend­ing vol­un­teerism alone can hold up the pub­lic in­ter­net. We un­der­stand this duty more clearly in other do­mains. After all, roads aren’t gov­erned by ride-shar­ing com­pa­nies; pay­ment apps don’t set mon­e­tary pol­icy; cloud ser­vice providers don’t dic­tate na­tional se­cu­rity frame­works (at least not yet). Yet we have been shock­ingly ca­sual about gov­ern­ing our dig­i­tal de­pen­den­cies.

It’s hard to imag­ine a coun­try that had its AI strat­egy blessed by Google’s chief econ­o­mist choos­ing to stop rout­ing the every­day pol­icy work of the state through an ad­ver­tis­ing com­pany. Switching over to a pri­vacy-pre­serv­ing de­fault would help Canada re­duce un­nec­es­sary data leak­age and sig­nal that pub­lic in­sti­tu­tions treat search as an in­fra­struc­ture key to our dig­i­tal sov­er­eignty rather than a free” con­sumer ser­vice.

Information has eco­nomic value; even when in­di­vid­ual searches look mun­dane, the ag­gre­gate pat­tern can sur­face quite sen­si­tive in­sights about a so­ci­ety and its cit­i­zens. If gov­ern­ments want to get se­ri­ous about ac­tu­ally gov­ern­ing the in­tan­gi­ble econ­omy, they must first gov­ern the con­di­tions that make in­for­ma­tion durable and dis­cov­er­able. We would­n’t be start­ing en­tirely from scratch. We have pieces of this pub­lic-in­ter­est ar­chi­tec­ture kick­ing around: Library and Archives Canada, which pre­serves fed­eral web records and other his­tor­i­cal in­for­ma­tion, and the Internet Archive Canada, which works in tan­dem with the main or­ga­ni­za­tion and hosts data back­ups at Canadian uni­ver­si­ties.

Canada has also built this kind of dig­i­tal in­fra­struc­ture be­fore. CANARIE—originally, the Canadian Network for the Advancement of Research, Industry and Education—helped cre­ate a na­tional re­search and ed­u­ca­tion net­work for uni­ver­si­ties, re­searchers, and in­no­va­tors. In the 1990s, SchoolNet and the Community Access Program brought schools and li­braries on­line way be­fore con­nec­tiv­ity was taken for granted. The Public Knowledge Project at Simon Fraser University gave the world Open Journal Systems, help­ing thou­sands of schol­arly jour­nals pub­lish out­side the grip of ma­jor com­mer­cial plat­forms, be­gin­ning in 2002. MapleMusic built an on­line mar­ket for Canadian mu­sic be­fore stream­ing swal­lowed cul­tural dis­cov­ery. These pro­jects shared a premise we should re­cover: Canada does not have to wait for pri­vate plat­forms to or­ga­nize and con­trol our dig­i­tal lives.

The sun is set­ting on the old bar­gain with Google: give us your cu­rios­ity and we will give you the world. What rises next could be stranger and much more syn­thetic: an in­ter­net ran­domly re­mem­bered by ma­chines and mon­e­tized by in­ter­me­di­aries. Or it could be some­thing stur­dier: a pub­lic in­ter­net treated as in­fra­struc­ture, with his­tor­i­cal mem­ory pre­served not be­cause it is prof­itable but be­cause it is ours.

The fu­ture of pub­lic knowl­edge will de­pend not only on what ex­ists but on who has the ini­tia­tive and in­cen­tives to pre­serve it. Even this ar­ti­cle won’t be on­line for­ever. Should it?

The UK’s War on Anonymity Has Come to America

www.effort.news

An Effort in­ves­ti­ga­tion has iden­ti­fied a co­or­di­nated op­er­a­tion to in­flu­ence American law­mak­ers by five for­eign non-gov­ern­ment or­ga­ni­za­tions and their US af­fil­i­ates. These NGOs have con­verged upon a uni­fied strat­egy: use the rhetoric of child safe­ty’ to ad­vo­cate for dig­i­tal ID laws that would pre­vent adults from us­ing the in­ter­net anony­mously.

In Britain, they suc­ceeded in pass­ing those laws. They now form part of a sys­tem which sur­veils, ar­rests, and jails po­lit­i­cal dis­si­dents. Digital ID laws are a key com­po­nent used to strip Brits of in­ter­net anonymity, an oth­er­wise ef­fec­tive tech­no­log­i­cal coun­ter­mea­sure against au­thor­i­tar­i­an­ism.

British NGOs are now repli­cat­ing their play­book in the United States of America, at­tempt­ing to pass a patch­work of dig­i­tal ID laws in 21 states and the US Congress.

One British NGO, 5Rights, reg­is­tered un­der the Foreign Agents Registration Act, but has failed to file crit­i­cal in­for­ma­tion re­lated to its for­eign lead­er­ship. All five for­eign NGOs have in­flu­enced American pol­icy, ei­ther di­rectly or us­ing American prox­ies with sig­nif­i­cant for­eign man­age­ment.

The Center for Countering Digital Hate (CCDH) was founded by British Labour con­sul­tants Imran Ahmed and Morgan McSweeney2.

CCDH has al­ready been in­volved in cen­sor­ship scan­dals in the US and UK. They led a boy­cott cam­paign against X im­me­di­ately af­ter Elon Musk’s ac­qui­si­tion, spon­sored ma­jor cen­sor­ship leg­is­la­tion in the UK, and fre­quently hosted events in which US and UK gov­ern­ment of­fi­cials ad­vo­cated for cen­sor­ship.3

America First Legal, a law firm con­nected with the Trump ad­min­is­tra­tion, ac­cused CCDH of vi­o­lat­ing the Foreign Agents Registration Act (FARA) in 2024. The US Department of Justice has not pub­licly an­nounced any in­ves­ti­ga­tion into CCDH, and did not re­spond to our re­quest for com­ment.

Effort in­de­pen­dently cor­rob­o­rated the core claims made in this let­ter about the na­tion­al­i­ties and res­i­dences of CCDH lead­er­ship — that Imran Ahmed is CEO of both or­ga­ni­za­tions and is a British na­tional, that Clark and Brookes are shared di­rec­tors of both US and UK en­ti­ties, and that McNeill was a board mem­ber un­til July 11, 2024.

CCDH sup­ported bills with the ex­plicit in­tent of im­port­ing British laws. A joint state­ment by Buffy Wicks, the lead au­thor of AB 2273, Jordan Cunningham, an­other AB 2273 au­thor, and 5Rights Foundation states, The Bill is prac­ti­ca­ble and re­al­is­tic, draw­ing as it does on the UKs Age Appropriate Design Code (AADC).”

AB 2273 was co-de­signed by 5Rights Foundation, a for­eign prin­ci­pal that paid to lobby for AB 2273, ac­cord­ing to their own Foreign Agents Registration Act fil­ing.

5Rights is the lead­ing NGO pro­mot­ing the British Age Appropriate Design Code / AB 2273 model across American states. 5Rights en­gaged on 42 bills across 18 states, 11 of which have be­come law.

5Rights paid Capitol Connection $50,000 to lobby in the California Legislature from May to September 2022. They did not dis­close this lob­by­ing on be­half of a for­eign agent un­til 2024, over a year af­ter the bill they lob­bied for passed.

In their dis­clo­sure, Capitol Connection de­nied that 5Rights was su­per­vised, owned, di­rected, con­trolled, fi­nanced, or sub­si­dized by a for­eign gov­ern­ment, for­eign po­lit­i­cal party, or other for­eign prin­ci­pal. They did not sub­mit any in­for­ma­tion for ques­tion 12, which could have clar­i­fied what level of con­trol Kidron, their founder and then-di­rec­tor, had over 5Rights.

5Rights is a British non­profit founded by Baroness Beeban Tania Kidron, who sits in the British House of Lords, the up­per cham­ber of the British Parliament.

Despite the British gov­ern­ment us­ing these laws to tar­get po­lit­i­cal dis­si­dents, Baroness Kidron and 5Rights now ad­vo­cate for VPN bans, a change that would add the UK to a small num­ber of au­thor­i­tar­ian regimes — Russia, China, and North Korea — that ban VPNs.4

A cen­tral node in that British cen­sor­ship ecosys­tem is the Institute for Strategic Dialogue. They have con­tracted with the US State Department, European Union, and sev­eral UK min­istries for a to­tal of over $17M US dol­lars.5

Government fund­ing records by ju­ris­dic­tion

United States

$11.21m

European Union

$5.54m

United Kingdom

$0.72m

ISDs con­tracts ex­plic­itly de­scribe a mis­sion to con­trol in­ter­net speech. In the re­ports and pol­icy rec­om­men­da­tions pro­duced for these con­tracts,6 ISD con­flates po­lit­i­cal dis­sent with misinformation”, extremism”, hate speech”, or even violent ex­trem­ism”, both jus­ti­fy­ing and en­abling cen­sor­ship by gov­ern­ments for­eign and do­mes­tic.

ISD has lob­bied fed­er­ally in the United States.7 Their re­port states that a ma­jor­ity of Board mem­bers sit on both boards so that de­ci­sions can be taken col­lec­tively.”

Reset Tech is yet an­other global con­sor­tium with over­lap­ping lead­er­ship. Reset de­scribes its own gov­er­nance as fol­lows: We are gov­erned by a Board of Directors that over­sees our global op­er­a­tions.”8

Reset Tech Action, Reset Tech’s US 501(c)4 af­fil­i­ate, spent $1,352,800 lob­by­ing Congress and state leg­is­la­tures from 2024 through Q2 2026. Effort found sig­nif­i­cant over­lap be­tween Reset Tech and 5Rights: 4 of 6 bills it lob­bied for are bills 5Rights en­gaged with, in­clud­ing AB 2273, the bill 5Rights also lob­bied for.9

Reset Tech is also tied to ISD through their EU af­fil­i­ate, Reset Tech GmbH, which re­ceived €4.9M from the EU gov­ern­ment as part of the con­sor­tium led by ISD.

In the­ory, there may be age ver­i­fi­ca­tion laws which do not con­tribute to au­thor­i­tar­ian con­trol of speech. However, when for­eign prin­ci­pals are lob­by­ing for age ver­i­fi­ca­tion law, dur­ing a time when those laws are be­ing used to sup­press po­lit­i­cal speech in their home coun­tries, it can­not be a sur­prise if those laws are used for the same pur­poses in America.

Footnotes

Effort mapped en­gage­ments based on pub­lic state­ments, records, and news cov­er­age. The map is a lower bound of en­gage­ments the Effort team was able to ver­ify, but the list of en­gage­ments might be in­com­plete.

Effort mapped en­gage­ments based on pub­lic state­ments, records, and news cov­er­age. The map is a lower bound of en­gage­ments the Effort team was able to ver­ify, but the list of en­gage­ments might be in­com­plete.

Morgan McSweeney is iden­ti­fied as a founder by The Times and the New Statesman in cov­er­age of the launch. CCDHs web­site con­tin­ues to iden­tify Imran Ahmed as its founder and CEO.

Morgan McSweeney is iden­ti­fied as a founder by The Times and the New Statesman in cov­er­age of the launch. CCDHs web­site con­tin­ues to iden­tify Imran Ahmed as its founder and CEO.

CCDH-supported UK cen­sor­ship leg­is­la­tion:

Draft Online Safety Bill Online Safety Bill Online Safety Act 2023

X boy­cott cam­paign and cen­sor­ship speeches

CCDH-supported UK cen­sor­ship leg­is­la­tion:

Draft Online Safety Bill

Online Safety Bill

Online Safety Act 2023

X boy­cott cam­paign and cen­sor­ship speeches

In an ar­ti­cle ti­tled The VPN loop­hole in the fight to pro­tect chil­dren,” Kidron called so­cial me­dia bans with­out VPN bans for show and head­lines, not for chil­dren.” This rhetoric is de­ployed for a VPN-ban pol­icy which would pre­dom­i­nantly af­fect adults.

In an ar­ti­cle ti­tled The VPN loop­hole in the fight to pro­tect chil­dren,” Kidron called so­cial me­dia bans with­out VPN bans for show and head­lines, not for chil­dren.” This rhetoric is de­ployed for a VPN-ban pol­icy which would pre­dom­i­nantly af­fect adults.

We use con­ver­sion rates for July 27, 2026: €1 = $1.1389 and €1 = £0.85524. It ex­cludes the £635,204 ag­gre­gate for three un­named gov­ern­ment con­tracts and the £2,322,079 un­al­lo­cated gov­ern­ment-and-mul­ti­lat­eral re­main­der.

PeriodGovernment coun­ter­par­tyRe­cip­i­ent ISD en­ti­ty­Con­tract / award / spend recor­dReported amoun­tRecord

2024Government coun­ter­par­ties not namedIn­sti­tute for Strategic Dialogue (UK)Three gov­ern­ment con­tracts re­ported in the an­nual-re­turn sum­mary£635,204Char­ity Commission record 2024Multiple gov­ern­ments and mul­ti­lat­er­alsIn­sti­tute for Strategic Dialogue (UK)Accounts-listed fun­ders: US State Department; European Union; UK FCDO, DCMS and Home Office; Australian DFAT; Danish MFA; New Zealand Department of Internal Affairs; Public Safety Canada; Canadian Privy Council; UNESCO; German Government; and Ministerium der Finanzen des LandesNot sep­a­rately dis­closedISD 2024 ac­counts 2024Government and mul­ti­lat­eral in­sti­tu­tion­sIn­sti­tute for Strategic Dialogue (UK)Undisclosed re­main­der af­ter the three-con­tract ag­gre­gate£2,322,079­Cal­cu­lated from £2,957,283 less £635,204; see 2024 ac­counts. 2019 – 2021London MOPACInstitute for Strategic Dialogue (UK)Comprehensive scop­ing, en­gage­ment and con­sul­ta­tion process£50,000­MOPAC con­tract reg­is­ter 2022OfcomInstitute for Strategic Dialogue (UK)Analysis of on­line hate in the UK£79,250Contracts Finder 2022 – 2024London MOPACInstitute for Strategic Dialogue (UK)Shared Endeavour Fund in­de­pen­dent fund eval­u­a­tion£49,961.75­MOPAC reg­is­ter 2023 – 2024London MOPACInstitute for Strategic Dialogue (UK)Shared Endeavour Fund in­de­pen­dent fund eval­u­a­tion ex­ten­sion£61,746­MOPAC reg­is­ter 2023UK Department for Digital, Culture, Media & SportInstitute for Strategic Dialogue (UK)Research into cli­mate-re­lated mis/​dis­in­for­ma­tion af­fect­ing the UK£37,677Open-contract record 2024UK Foreign, Commonwealth & Development OfficeInstitute for Strategic Dialogue (UK)PPM con­sul­tancy spend recorded in January£102,437.90FCDO spend file 2024UK Foreign, Commonwealth & Development OfficeInstitute for Strategic Dialogue (UK)PPM con­sul­tancy spend recorded in March£158,752.07FCDO spend file 2024UK Ministry of Housing, Communities & Local GovernmentInstitute for Strategic Dialogue (UK)Evidence re­view of the 2022 Leicester un­restUndis­closedISD 2024 ac­counts 2024 – 2027European Commission, DG CNECTInstitute for Strategic Dialogue gGmbH (Germany), con­sor­tium lead; Institute for Strategic Dialogue (UK), con­sor­tium mem­berDig­i­tal Services Act com­pli­ance mon­i­tor­ing, five-mem­ber con­sor­tium€4,861,089 con­sor­tium to­tal; ISD share undis­closedTED award no­tice 2019 – 2022US Department of StateInstitute for Strategic Dialogue (UK)Community-based in­ter­ven­tions pro­gram in Kenya · SLMAQM19GR2273$2,250,000USAspending 2024 – 2027US Department of JusticeInstitute for Strategic Dialogue–USStrong Cities Network com­mu­nity-based hate-pre­ven­tion pro­ject · 15PBJA24GG02835ADVA$2,000,000USAspending 2022 – 2023US Department of StateInstitute for Strategic Dialogue (UK)Strong Cities Network re­gional hubs and gov­er­nance · SLMAQM22CA0079$1,333,333USAspending 2024 – 2026US Department of Homeland SecurityInstitute for Strategic Dialogue–USDomestic vi­o­lent-ex­trem­ism trends analy­sis · 23STFRG00021$1,249,621DHS no­tice of award Period not re­port­e­dUS Department of Homeland SecurityInstitute for Strategic Dialogue–USCountering vi­o­lent ex­trem­ism fi­nan­cial as­sis­tance · EMW-2023-GR-00123$817,129USAspending 2017 – 2019US Department of StateInstitute for Strategic Dialogue (UK)Novation from Trialogue Educational Trust · SLMAQM17CA2016$567,953.63USAspending 2024 – 2025US Department of StateInstitute for Strategic Dialogue (UK)Strong Cities Network ca­pac­ity-build­ing · SAQMIP24CA5173$444,005USAspending 2021 – 2023US Department of StateInstitute for Strategic Dialogue–USYoung peo­ple’s on­line and of­fline ini­tia­tives · SJO10021CA3010$422,408.08USAspending 2024 – 2025US Department of Homeland SecurityInstitute for Strategic Dialogue–USTargeted Violence and Terrorism Prevention grant · EMW-2024-GR-05344$315,009.94USAspending 2021 – 2023US Department of StateInstitute for Strategic Dialogue (UK)Young Cities pro­gram in Belgium · SBE20021GR3012$269,541.97USAspending 2023 – 2024US Department of StateInstitute for Strategic Dialogue (UK)Community re­silience against hate and po­lar­iza­tion · SGE21023GR0096$249,783.96USAspending 2023 – 2024US Department of StateInstitute for Strategic Dialogue (UK)Social co­he­sion and anti-Ukraine nar­ra­tives · SAQMIP24GR0009$246,669USAspending 2017US Department of StateInstitute for Strategic Dialogue–USStrong Cities Network CVE ex­per­tise · SLMAQM17CA1034$238,235USAspending 2018US Department of StateInstitute for Strategic Dialogue (UK)Digital plat­forms for im­mi­gra­tion in­te­gra­tion and CVE · SBE20017GR029$199,727USAspending 2021 – 2023US Department of StateInstitute for Strategic Dialogue (UK)City Pair Program work­shop · SFI30021GR3015$140,000USAspending 2017 – 2018US Department of StateInstitute for Strategic Dialogue (UK)Strong Cities Network ex­changes and work­shops · SIN65017CA0020$80,000USAspending 2020 – 2021US Department of StateInstitute for Strategic Dialogue (UK)Monitoring on­line in­for­ma­tion op­er­a­tions dur­ing COVID-19 · SFR63020CA0049$66,293.46USAspending 2024 – 2025US Department of StateInstitute for Strategic Dialogue (UK)Strong Cities Network peer learn­ing and ca­pac­ity build­ing · SUK56024GR0031$63,760USAspending 2017 – 2018US Department of StateInstitute for Strategic Dialogue (UK)Travel for Strong Cities Network work­shop · SUK56017CA034$50,000USAspending 2008 – 2009US Department of StateInstitute for Strategic Dialogue (UK)Counter-radicalization re­search and net­work de­vel­op­ment · SUK56008GR724$50,000USAspending 2017US Department of StateInstitute for Strategic Dialogue–USIndonesia CVE mes­sag­ing · SLMAQM17CA1041$33,848.99USAspending 2024US Department of StateInstitute for Strategic Dialogue–USLocal-leader con­fer­ence on hate pre­ven­tion and so­cial co­he­sion · SCA52524GR0019$32,963.16USAspending 2024 – 2025US Department of StateInstitute for Strategic Dialogue (UK)Strong Cities Network global sum­mit lo­gis­tics · SSF75024GR0015$24,992USAspending 2024US Department of StateInstitute for Strategic Dialogue–USCity-led strate­gies against hate ini­tia­tive · SSW80024GR0003$24,578.09USAspending 2018US Department of StateInstitute for Strategic Dialogue (UK)Australian–American city ties · SAS20018GR034$17,383USAspending 2024US Department of StateInstitute for Strategic Dialogue–USFrench cities coun­ter­ing hate-mo­ti­vated vi­o­lence · SFR63024CA0018$14,000USAspending 2023US Department of StateInstitute for Strategic Dialogue (UK)Strong Cities transat­lantic event travel · SNO60023GR0011$10,000USAspending 2024 – 2025US Department of StateInstitute for Strategic Dialogue (UK)Smart Cities Network peer learn­ing and ca­pac­ity build­ing · SMO55024GR0075$1,560.21USAspending

US rows are the com­plete set of re­cip­i­ent-name matches for INSTITUTE FOR STRATEGIC DIALOGUE in USAspending’s pro­ject-grant and co­op­er­a­tive-agree­ment search through August 3, 2026; award val­ues are shown in US dol­lars.

We use con­ver­sion rates for July 27, 2026: €1 = $1.1389 and €1 = £0.85524. It ex­cludes the £635,204 ag­gre­gate for three un­named gov­ern­ment con­tracts and the £2,322,079 un­al­lo­cated gov­ern­ment-and-mul­ti­lat­eral re­main­der.

US rows are the com­plete set of re­cip­i­ent-name matches for INSTITUTE FOR STRATEGIC DIALOGUE in USAspending’s pro­ject-grant and co­op­er­a­tive-agree­ment search through August 3, 2026; award val­ues are shown in US dol­lars.

Archived ISD re­port ex­am­ple.

Archived ISD re­port ex­am­ple.

US Senate LDA data­base.

Federal fil­ing pe­ri­o­dReg­is­trantRe­ported amountSource

2026 Q1ISD-USLess than $5,000LDA re­port 2026 Q2ISD-USLess than $5,000LDA re­port

US Senate LDA data­base.

Reset Tech home­page global col­lec­tive ref­er­ences: Reset Tech”: 1, we”: 6, and our”: 5 (only in the con­text of Reset Tech).

Reset Tech home­page global col­lec­tive ref­er­ences: Reset Tech”: 1, we”: 6, and our”: 5 (only in the con­text of Reset Tech).

The table to­tals $1,352,800 in re­ported lob­by­ing pay­ments and ex­pen­di­tures from 2024 through Q2 2026: $1,222,500 in fed­eral lob­by­ing pay­ments, $100,000 in Maryland em­ployer ex­pen­di­tures, and $30,300 in Nebraska lob­by­ist com­pen­sa­tion and re­im­burse­ment.

Filing pe­ri­o­dReg­is­trantRe­ported amount

2024 Q1–Q4Corbin Strategies$320,000 2024 Q1–Q4Center Road Solutions$170,000 2025 Q1–Q4; 2026 Q1–Q2EFB Advocacy LLC$502,500 2024 Q1–Q4; 2025 Q1–Q4Epplin Strategic Planning$230,000 2024Reset Tech Action$100,000 2024 – 2025Reset Tech Action$30,300

The table to­tals $1,352,800 in re­ported lob­by­ing pay­ments and ex­pen­di­tures from 2024 through Q2 2026: $1,222,500 in fed­eral lob­by­ing pay­ments, $100,000 in Maryland em­ployer ex­pen­di­tures, and $30,300 in Nebraska lob­by­ist com­pen­sa­tion and re­im­burse­ment.

We iden­ti­fied AVPA as a sig­nif­i­cant for­eign in­flu­ence over age ver­i­fi­ca­tion laws in the UK and US and added them to the map ac­cord­ingly, but they are out­side of the di­rect scope of this in­ves­ti­ga­tion, as we did not iden­tify legally clas­si­fied lob­by­ing from AVPA.

AVPA is a British trade or­ga­ni­za­tion of age ver­i­fi­ca­tion sup­pli­ers — mem­bers with a fi­nan­cial stake in age ver­i­fi­ca­tion man­dates.

AVPAs page lists Alastair Graham as chair and Ian Moody, Tony Allen, Andy Lulham, Julie Dawson, and Ryan Bessemer as the ex­ec­u­tive com­mit­tee. Their na­tion­al­i­ties are as fol­lows.

NameRoleSource con­firm­ing cit­i­zen­ship

Alastair GrahamChairBritish — Companies House of­fi­cer record Ian MoodyExecutive CommitteeBritish — Companies House of­fi­cer record Tony AllenExecutive CommitteeBritish — Companies House of­fi­cer record Andy LulhamExecutive CommitteeBritish — LinkedIn pro­file Julie DawsonExecutive CommitteeBritish — Companies House Yoti di­rec­tor record Ryan BessemerExecutive CommitteeAustralian — LinkedIn pro­file

We iden­ti­fied AVPA as a sig­nif­i­cant for­eign in­flu­ence over age ver­i­fi­ca­tion laws in the UK and US and added them to the map ac­cord­ingly, but they are out­side of the di­rect scope of this in­ves­ti­ga­tion, as we did not iden­tify legally clas­si­fied lob­by­ing from AVPA.

AVPA is a British trade or­ga­ni­za­tion of age ver­i­fi­ca­tion sup­pli­ers — mem­bers with a fi­nan­cial stake in age ver­i­fi­ca­tion man­dates.

AVPAs page lists Alastair Graham as chair and Ian Moody, Tony Allen, Andy Lulham, Julie Dawson, and Ryan Bessemer as the ex­ec­u­tive com­mit­tee. Their na­tion­al­i­ties are as fol­lows.

Needle 2 - The 14 MB Agentic LLM for Tiny Devices | Cactus

cactuscompute.com

Today we re­lease Needle 2: an open 45M-parameter model for tool call­ing, de­vice use and struc­tured ex­trac­tion. The whole model is a sin­gle 14MB bi­nary that runs a full ses­sion in 28MB of RAM. It is built on our Simple Attention Network find­ings, com­pressed to CQ2-bit with Cactus Quants, and baked into its own en­gine.

On the tool call and mo­bile de­vice use bench­marks, Needle 2 trades wins with other small mod­els like FunctionGemma 270M, LFM2.5 230M and Apple FM, at to 70× smaller, and 2 bits against their f16. Needle hits 500 to­kens/​sec de­code speed on a Raspberry Pi 5, be­tween 400 – 1,500 to­kens/​sec on VR de­vices like Meta Quest 3S and Apple Vision Pro, and ranges 300 – 700 on sub-$200 phones such as the Samsung A-Series. With a peak ses­sion RAM around 28MB, Needle runs on newer mi­cro­con­trollers like ESP32-S3.

The Playground lets you test Needle for wear­ables, ro­bots, smart homes, phones, and au­to­mo­tive. Needle is li­censed un­der Apache 2.0, with weights on Hugging Face; the repo gets you run­ning.

Our Bet

Bringing On-Device AI to <$200 Devices: Edge AI has lately meant Macs and PCs, but the edge is mostly cheap hard­ware: over 21 bil­lion con­nected IoT de­vices against roughly 1.5 bil­lion PCs, and in emerg­ing mar­kets most phones ship un­der $200. Count bud­get phones, Raspberry Pis, mi­cro­con­trollers, wear­ables, small ro­bots like Reachy Mini, and con­nected home de­vices, and roughly four in five edge de­vices cost un­der $200. That is the hard­ware Needle tar­gets: no GPU, no NPU, a few hun­dred MB of RAM.

Function Call & Device Use: Turning on a light does not need a fron­tier model. A watch, a home, a ro­bot: each al­ready ex­poses its abil­i­ties as func­tions with typed pa­ra­me­ters, so the only hard part is map­ping a messy sen­tence onto them: which func­tion, with which val­ues. Framed that way, the prob­lem needs no world knowl­edge and no open-ended prose, which is why 45M pa­ra­me­ters suf­fice where chat needs bil­lions. That smaller for­mu­la­tion is the bet every­thing else fol­lows from.

Extraction & Structured Outputs: The schema is the in­ter­face, and the same for­mu­la­tion cov­ers doc­u­ments: a schema plus a para­graph re­turns typed fields, an enum field is a clas­si­fier, an ar­ray field col­lects a list in one call. We en­force this with a con­tract, not a con­ven­tion: every turn is an­swered with a call en­ve­lope, the empty call is the re­fusal, and a byte-level gram­mar com­piled from the de­clared schemas con­strains every to­ken. The gram­mar car­ries the syn­tax, so all 45M pa­ra­me­ters go to choos­ing func­tions and ground­ing ar­gu­ments in the user’s words.

Edge-Cloud Collaboration: No small model cov­ers every­thing, so Needle says so in­stead of guess­ing: every re­sponse car­ries a learned con­fi­dence score, and off-topic re­quests re­turn the empty call. Above your thresh­old, act; be­low it, re-ask or es­ca­late to the cloud. Most de­vice re­quests are rou­tine con­trol, so es­ca­la­tion stays rare and the de­fault path stays pri­vate, in­stant, and free.

Lossless 2bit Quantization: Small mod­els break un­der post-hoc quan­ti­za­tion, so we never quan­tize post-hoc: Needle 2 trains against Cactus Quants from pre­train through post-train, weights, ac­ti­va­tions, and KV cache alike. The 2bit model you de­ploy is the model that was trained. That is what fits 45M pa­ra­me­ters into 14MB with noth­ing lost on our bat­tery.

Co-designed Model & Inference: Every ar­chi­tec­tural choice was bench­marked on the tar­get hard­ware be­fore it earned its pa­ra­me­ters, and the de­liv­er­able is the pair, not the weights: a sin­gle de­pen­dency-free C++ bi­nary that probes the CPU at startup and picks its ker­nels, with the model, to­k­enizer, and gram­mar com­piler sealed in­side. One ar­ti­fact runs from Cortex-M to x86 to WebAssembly. There is noth­ing to in­stall and noth­ing to down­load.

Fine-tune on your Mac/PC: Every prod­uct has its own tool vo­cab­u­lary, and a 45M model is small enough to re­train where it runs: the repo and python pack­age tune and test on your own com­puter in min­utes to a few hours. Ship a Needle that speaks your de­vice’s tools, not a generic as­sis­tant.

Production

Needle is pro­duc­tion-ready for prod­ucts that re­quire a min­i­mal RAM foot­print, low la­tency, pri­vacy, and of­fline re­li­a­bil­ity. Pebble - the pi­o­neer of the mod­ern wear­able in­dus­try - runs it lo­cally in the Index 01 app to turn spo­ken re­quests into ac­tions with­out de­pend­ing on a net­work con­nec­tion.

The Pebble Index Ring has no screen. So when you speak to it, the ac­tion just has to hap­pen, every time, with or with­out in­ter­net con­nec­tion. We run Cactus Needle lo­cally in the app, in­stead of re­ly­ing on the cloud. The mod­el’s foot­print is tiny and the per­for­mance never lets us down.

The Pebble Index Ring has no screen. So when you speak to it, the ac­tion just has to hap­pen, every time, with or with­out in­ter­net con­nec­tion. We run Cactus Needle lo­cally in the app, in­stead of re­ly­ing on the cloud. The mod­el’s foot­print is tiny and the per­for­mance never lets us down.

Architecture

Needle 2 is pre­trained on a pro­pri­etary 115B-token cor­pus and post-trained on 38B to­kens with com­pact rea­son­ing traces and care­ful dataset dis­tri­b­u­tion de­sign. For scale: LFM2.5 – 230M was pre­trained on 19 tril­lion to­kens, roughly 120× Needle’s to­tal, and the eval­u­a­tion be­low shows the two trad­ing wins. Each com­po­nent ex­ists to buy ca­pa­bil­ity with­out buy­ing band­width. The Hadamard MLP re­places the usual dense up-and-down pro­jec­tions with a fixed Walsh trans­form and learned di­ag­o­nals, so the chan­nel mix­ing that dom­i­nates a small mod­el’s weight reads costs al­most no pa­ra­me­ters at all. The en­gram moves world knowl­edge out of the stack into hashed n-gram ta­bles that are read a few rows per to­ken: ca­pac­ity that is nearly free at de­code time, which mat­ters on de­vices where every megabyte read from flash is la­tency and bat­tery. The multi-lane resid­ual streams give a 27-layer, 512-wide net­work the rout­ing flex­i­bil­ity of a much wider one, at the cost of a few dot prod­ucts per layer rather than more at­ten­tion or MLP vol­ume.

The mem­ory sys­tem is de­signed back­wards from fixed-RAM de­vices. Attention uses a 256-token slid­ing win­dow so the KV cache is bounded no mat­ter how long a ses­sion runs, and the sys­tem prompt and tool de­c­la­ra­tions are pinned as per­ma­nent sinks so the one thing a tool-call­ing model must never for­get—its tools—is struc­turally un­able to be evicted. The cache it­self is trained with QAT, and weights are stored in Cactus Quants at a mixed bits per weight av­er­ag­ing 2bit. The re­sult is that qual­ity de­ci­sions and de­ploy­ment de­ci­sions stay de­cou­pled: one trained model, spe­cial­ized to what­ever pre­ci­sion and win­dow a tar­get de­vice can af­ford.

The en­gine earns its speed from what it re­fuses to com­pute. Weights never de­com­press into RAM: the 2-bit codes are ex­panded in­side vec­tor reg­is­ters, fused into in­te­ger dot prod­ucts, so res­i­dent mem­ory stays at blob size and the arith­metic path is int8 end to end—ac­ti­va­tions, KV cache, and the lane rout­ing ta­bles alike. The gram­mar is an op­ti­miza­tion, not just a guar­an­tee: be­cause the matcher knows which to­kens are le­gal be­fore the log­its ex­ist, the en­gine com­putes out­put scores only for can­di­date rows, skip­ping up to 98% of the vo­cab­u­lary pro­jec­tion on struc­tural to­kens, and skips it en­tirely on steps whose out­put is al­ready forced. One uni­ver­sal bi­nary probes the CPU at startup and self-se­lects its ker­nel tier—SDOT, NEON, AVX2, RISC-V vec­tors, wasm SIMD, or scalar—and the thread pool spins through the short se­r­ial sec­tions of a to­ken in­stead of sleep­ing, which alone nearly dou­bled de­code. None of this changes a sin­gle out­put: every trick is ei­ther ex­act or val­i­dated to­ken-for-to­ken against the ref­er­ence path.

All of it is ul­ti­mately an en­ergy ar­gu­ment. On de­vice sil­i­con, mov­ing a byte out of flash or DRAM costs or­ders of mag­ni­tude more than a mul­ti­ply-ac­cu­mu­late, so the bud­get that mat­ters is FLOPs per to­ken and bytes per to­ken to­gether. The ar­chi­tec­ture cuts the first: a con­ven­tional trans­former of Needle’s width and depth spends 164 MFLOPs per to­ken, and even one squeezed down to Needle’s pa­ra­me­ter count spends 87, be­cause every pa­ra­me­ter it owns must be ex­er­cised through a mat­mul. Needle spends 70, and keeps a fifth of its pa­ra­me­ters as gath­ered mem­ory that costs no arith­metic at all. The bi­nary cuts the sec­ond, as the en­gine sec­tion showed: noth­ing re­ma­te­ri­al­izes, the arith­metic stays int8 end to end, and the gram­mar prunes com­pute out­right, so de­cod­ing a to­ken reads at most the 14MB blob once, and on struc­tural to­kens mean­ing­fully less. This is what bat­tery life is made of. Even on a high-end phone, an al­ways-on as­sis­tant lives in­side a power bud­get; every MFLOP is mil­li­watt-hours, and Needle spends to 85× fewer of them per to­ken than the mod­els it is bench­marked against.

Compute per to­ken

Bounded ses­sion mem­ory is what puts mi­cro­con­trollers in reach. Because the slid­ing win­dow caps state, Needle 2′s RAM is a de­ter­min­is­tic 28MB ceil­ing, not a curve that grows with con­ver­sa­tion length. That fits MCU-class parts with ex­ter­nal RAM, such as ESP32-P4 with 32MB of PSRAM, or STM32H7 and NXP i.MX RT boards with SDRAM. The en­gine com­piles sin­gle-threaded for bare metal and ships as a sta­tic li­brary for Cortex-M4, M7, and M55.

Evaluation

We eval­u­ate on five pub­lic func­tion-call­ing bench­marks: Google’s Mobile Actions, DroidCall, the Seal-Tools in-do­main and out-of-do­main tests, and BFCL v4 sin­gle-turn. Scoring is or­dered strict ex­act match: a row passes only if the func­tion names, the call or­der, and every ar­gu­ment value match. All Needle 2 num­bers are mea­sured end-to-end through the shipped C++ en­gine in its pro­duc­tion con­fig­u­ra­tion: CQ2-bit weights, tool re­trieval on, and the 256-token slid­ing KV win­dow. Nothing is re­laxed for bench­mark­ing; the num­bers re­flect the ex­act en­gine a de­vice runs, win­dow evic­tion in­cluded. Baselines run the re­leased check­points un­der vLLM at full con­text, and Apple FM runs on-de­vice.

Two asym­me­tries make this com­par­i­son hard, and we state both up­front. Precision: the base­lines stay at f16 de­lib­er­ately, be­cause con­ven­tional post-train­ing quan­ti­za­tion to 2 bits col­lapses mod­els that were never trained for ag­gres­sive com­pres­sion, while Cactus Quants is baked into Needle’s train­ing from the ground up. That skew fa­vors the base­lines. Scope: Needle is trained specif­i­cally for agen­tic tool call­ing and noth­ing else, while every base­line is a gen­eral lan­guage model car­ry­ing chat, prose, and world knowl­edge along­side its tool call­ing. That skew fa­vors Needle. There is no clean way to level both at once, so we do not try. The ta­bles an­swer one nar­row ques­tion: which model ex­e­cutes tool calls cor­rectly within an on-de­vice bud­get. We ac­cept the skew; it still paints the pic­ture we in­tend.

Mobile Actions (961 rows)

DroidCall test split (200 rows)

Seal-Tools in-do­main (700 rows)

Seal-Tools out-of-do­main (654 rows)

Needle was not trained for gen­eral func­tion call­ing: its cor­pus is con­sumer de­vice ac­tions—smart home, mo­bile, wear­ables, TV, car—plus struc­tured ex­trac­tion, and BFCLs gen­eral-pur­pose and en­ter­prise API sur­faces, in­clud­ing the Java and JavaScript SDK cat­e­gories, sit en­tirely out­side that dis­tri­b­u­tion. It ex­trap­o­lates nonethe­less: on Python sim­ple calls it lands within a point of FunctionGemma, a model six times larger trained for ex­actly this task, and it keeps a 93.4 well-formed rate across all 3,641 rows. The gap con­cen­trates where its train­ing data has never been: Java, JavaScript, and the par­al­lel multi-call cat­e­gories.

BFCL v4 sin­gle-turn (3,641 rows)

Just a moment...

www.patreon.com

Mars Bar from the 1990s found during house clearance

www.bbc.com

Mars Bar from 1991 found — and it’s 56% big­ger than to­day’s

7 hours ago

Eleanor MaslinEast Yorkshire and Lincolnshire

Victoria Gordon

A 35-year-old Mars Bar has been found dur­ing a house clear­ance — and the dis­cov­ery has gone vi­ral amid claims it high­lights the ef­fect of shrinkflation”.

The choco­late bar with a best-be­fore date of 1991 was found dur­ing a clear-out of a house in Scunthorpe.

Victoria Gordon, who runs the clean­ing ser­vice, posted a photo on so­cial me­dia of the 62.5g bar along­side one of to­day’s Mars Bars, which is 40g.

It was nearly as big as my hand, which was kind of why I no­ticed it,” she said.

Victoria Gordon

Speaking on BBC Radio Lincolnshire, Gordon said: We were clear­ing out a hoard­er’s house and every­thing we were root­ing through was decades old.

This Mars Bar stood out to me be­cause as I picked it up it was nearly the whole length of my hand.

I was like, Wow, look at the size of that!’”

Who makes Mars Bars?

Mars Bars are made by US com­pany Mars, Incorporated.

The man­u­fac­turer also owns sev­eral other choco­late brands in­clud­ing Celebrations choco­late tubs, Galaxy, Hotel Chocolat, M&Ms and Maltesers.

It also owns non-choco­late brands in­clud­ing Dreamies, Hubba Bubba, Pedigree and Whiskas.

The com­pany was founded in 1883 by Frank C Mars, from Minnesota, with his mother Elva teach­ing him how to hand-dip choco­late.

A Mars spokesper­son said: Over the last 35 years, we have made a num­ber of up­dates to our bar sizes and pack for­mats to re­flect con­sumer de­mand, along­side con­sid­er­ing wider ex­ter­nal fac­tors such as man­u­fac­tur­ing costs and the price of co­coa.”

Supplied

Gordon, who runs Pocket Rockets, is not sure what she will do with the bar, but she said she might be sit­ting on a gold mine”.

I do post some hoard­ing videos but I’ve never had any­thing go this vi­ral,” she said.

It’s so fas­ci­nat­ing what peo­ple find so in­ter­est­ing. I al­most put it in the skip [but] I might do a UK tour with it.”

Related sto­ries

Related in­ter­net links

GitHub - antirez/h3.c: MiniMax H3 inference engine for Mac computers

github.com

h3-metal

Native MiniMax-H3 in­fer­ence for Apple Silicon. The pro­ject is be­ing built as a se­quence of work­ing ver­ti­cal slices: de­ter­min­is­tic host/​model meta­data first, then portable Metal block par­ity, prompt en­cod­ing, prompt-to-video/​au­dio, and first/​last-frame con­di­tion­ing and then or­dered ref­er­ences.

Prompt-to-video/audio, first/​last-frame con­di­tion­ing, and or­dered Ref2VA im­age/​video/​au­dio ref­er­ences work end to end. The cur­rent work is in­cre­men­tal H3-specific Metal per­for­mance and mem­ory op­ti­miza­tion on M3 Max and M5 Max.

Tutorial

1. Build and in­spect the model

The ex­am­ples as­sume that the Hugging Face snap­shot is in ./MiniMax-H3 and that FFmpeg and FFprobe are avail­able on PATH.

make -j8 mkdir -p out­puts ./h3 –info -d ./MiniMax-H3

–info checks the model lay­out and prints the se­lected Metal de­vice with­out map­ping all weights or gen­er­at­ing me­dia. Run ./h3 –help for the com­plete CLI ref­er­ence.

Without -p, the same bi­nary starts an Iris-style in­ter­ac­tive ses­sion:

./h3 -d ./MiniMax-H3 –width 512 –height 512 –steps 6

Type a prompt to gen­er­ate a num­bered video. The ses­sion keeps the ex­act BF16 prompt con­di­tion­ing, pre­pared DiT, and video de­coder in mem­ory, so re­peat­ing a prompt with an­other seed avoids load­ing and en­cod­ing them again. Useful com­mands are !status, !seed ran­dom, !seconds 2, !show, !save out­put.mp4, and !cache. Use !help for the full, short list.

First/last-frame con­di­tion­ing is per­sis­tent in the ses­sion:

h3> !first open­ing.png h3> !last end­ing.png h3> The cam­era moves slowly around the sub­ject.

Use !first clear or !last clear to re­move an an­chor. Generated videos are writ­ten to the ses­sion di­rec­tory printed at startup.

For a gen­eral Ref2VA con­di­tion­ing im­age, use !ref-image PATH in­stead. Images are ap­pended in or­der and ex­posed to the model as <Picture 1>, <Picture 2>, and so on; file­names have no mean­ing to the model.

h3> !ref-image per­son.png h3> Make the per­son shown in Picture 1 wave to the cam­era.

!refs lists the cur­rent or­der, !ref-remove N re­moves one en­try, and !refs clear re­moves them all. Ref2VA ref­er­ences can­not be mixed with !first/!last an­chors.

2. Make a first fast video

Start with the val­i­dated bal­anced pre­set. It gen­er­ates 22 frames at 24 fps (about 0.92 sec­onds), dis­plays the evolv­ing mid­dle-video frame af­ter every de­nois­ing tran­si­tion in a sup­ported graph­i­cal ter­mi­nal, and prints phase tim­ings:

./h3 –profile \ -d ./MiniMax-H3 \ -p A red fox walks through fresh snow in a pine for­est. Medium track­ing shot, nat­ural win­ter light, re­al­is­tic fur, soft foot­steps and wind.” \ –width 512 –height 512 \ –frames 22 –steps 20 \ –layers 45 –reuse 2 \ –show \ -o out­puts/​fox-fast.mp4

This is de­lib­er­ately not the most ag­gres­sive con­fig­u­ra­tion:

–steps 20 per­forms the de­fault 20 de­nois­ing passes.

–reuse 2 com­putes 11 fresh de­noiser ve­loc­i­ties in­stead of all 20 and ex­trap­o­lates the skipped tran­si­tions.

–layers 45 runs 45 of the 50 trans­former blocks, re­duc­ing both time and uni­fied-mem­ory use.

–show is op­tional. It sup­ports Kitty/Ghostty and iTerm2/​WezTerm/​Kon­sole graph­i­cal pro­to­cols. It loads a res­i­dent pre­view VAE, dis­plays one rep­re­sen­ta­tive mid­dle-video frame af­ter every Euler tran­si­tion, and then dis­plays all fi­nal frames. Display di­men­sions de­fault to 2x so the im­age has its in­tended log­i­cal size on ma­cOS Retina screens; use –zoom 1 on a non-HiDPI dis­play. This adds pre­view de­code time and roughly 10 GiB of tem­po­rary model res­i­dency; runs with­out –show are un­changed.

–profile is op­tional and does not se­lect a dif­fer­ent gen­er­a­tion path.

The first process in­vo­ca­tion also pays model load­ing and filesys­tem-cache costs. Compare per­for­mance us­ing re­peated runs, and al­ter­nate vari­ants when the ma­chines are warm­ing up be­cause this work­load is sen­si­tive to ther­mal throt­tling.

For a very short it­er­a­tion, re­quest four de­nois­ing passes di­rectly:

./h3 –profile \ -d ./MiniMax-H3 \ -p A red fox walks through fresh snow in a pine for­est. Medium track­ing shot, nat­ural win­ter light, re­al­is­tic fur.” \ –width 512 –height 512 –frames 22 \ –steps 4 –layers 50 –reuse 1 \ –show \ -o out­puts/​fox-four-step.mp4

–steps N al­ways means ex­actly N de­nois­ing passes. Four through seven passes use the same sched­ule that won the low-bud­get com­par­i­son; in­creas­ing from 4 to 7 pro­gres­sively im­proves de­tail and mo­tion. Keep –reuse 1 at such small bud­gets so every re­quested pass runs the model. –show dis­plays one pre­view af­ter each pass.

Several tail-heavy sched­ules were eval­u­ated be­cause most vis­i­ble cleanup hap­pens late in a long run. They pre­served too few early com­po­si­tion up­dates and pro­duced wo­ven tex­ture, weak mo­tion, or clipped col­ors. The re­tained mode uses the re­leased lin­ear base grid with one ter­mi­nal point. On the 512-square, 22-frame fox test, the se­lected four-pass re­sult had 0.556 full-video SSIM against a 29-pass ref­er­ence; an in­de­pen­dent surfer test mea­sured 0.547. The four-pass de­noise took about 3.5 sec­onds on M5 Max, ver­sus 26.4 sec­onds for the ref­er­ence.

For a low-mem­ory run, add –ssd-streaming:

./h3 –profile \ -d ./MiniMax-H3 \ -p A red fox walks through fresh snow in a pine for­est.” \ –width 512 –height 512 –frames 22 –steps 20 \ –layers 50 –reuse 1 –ssd-streaming \ -o out­puts/​fox-ssd.mp4

This uses the orig­i­nal BF16 check­point with­out con­ver­sion or quan­ti­za­tion. It keeps two DiT blocks in mem­ory and reads the next block from SSD while the GPU runs the cur­rent one. On M5 Max, tracked DiT stor­age fell from about 36.5 GiB to 2.0 GiB at 512 square and 2.1 GiB at 864x480. A warm 50-block for­ward mea­sured 1.35 ver­sus 2.49 sec­onds at 512 square (84% slower), and 2.14 ver­sus 2.68 sec­onds at 864x480 (26% slower). These are com­par­isons against the same full-res­i­dency BF16 path, and the re­sults were byte-iden­ti­cal in both checks.

The 2.0–2.1 GiB fig­ure is the DiT’s tracked ten­sor stor­age, not to­tal sys­tem RAM. Prompt en­cod­ing and the two VAEs run in sep­a­rate phases rather than adding their full peaks to it; the OS, me­dia buffers, and out­put res­o­lu­tion still need head­room. –show keeps a pre­view VAE res­i­dent and adds roughly 10 GiB, so omit it for the low­est-mem­ory run.

SSD stream­ing is an ex­plicit mem­ory/​speed trade­off and is not the de­fault. It can­not be com­bined with –use-int8-row-fc2. In an in­ter­ac­tive ses­sion, use !ssd-streaming on.

3. Move to­ward ref­er­ence qual­ity

Change one con­trol at a time when eval­u­at­ing qual­ity. First re­store all lay­ers, then all de­noiser eval­u­a­tions, and fi­nally raise the de­fault 20-pass sched­ule to the slower 50-pass ref­er­ence:

./h3 –profile \ -d ./MiniMax-H3 \ -p A red fox walks through fresh snow in a pine for­est. Medium track­ing shot, nat­ural win­ter light, re­al­is­tic fur, soft foot­steps and wind.” \ –width 512 –height 512 \ –frames 22 –steps 50 \ –layers 50 –reuse 1 \ -o out­puts/​fox-close.mp4

The de­faults are –steps 20 –layers 50 –reuse 1; keep –steps 50 ex­plicit for this close path. It per­forms 50 com­plete 50-block de­noiser for­wards and is much more ex­pen­sive than the de­fault, but is the right or­a­cle when a fast mode changes the sub­ject, anatomy, mo­tion, or com­po­si­tion. Numerical pixel iden­tity with MLX is not ex­pected be­cause the ran­dom-num­ber and ex­e­cu­tion en­gines dif­fer; the de­picted con­tent and mo­tion should agree.

4. Choose a speed/​qual­ity pre­set

These con­trols are in­de­pen­dent un­less noted oth­er­wise:

On M5, –use-int8-row-fc2 uses one ac­ti­va­tion scale per FC2 row and a sin­gle full-width TensorOps prod­uct. It is op­tional be­cause it is less nu­mer­i­cally con­ser­v­a­tive than grouped int8. It re­duced com­plete de­noiser for­wards by about 2.6% in rec­i­p­ro­cal tests. Matched four-step fox and surfer videos kept the same sub­jects, set­ting, and mo­tion (full-video SSIM 0.919 and 0.828). In the in­ter­ac­tive ses­sion, use !int8-row-fc2 on.

–reuse and –core-reuse are mu­tu­ally ex­clu­sive. Layer thin­ning can be com­bined with ei­ther one.

To make the first com­mand faster while keep­ing its out­put res­o­lu­tion, add to­ken re­duc­tion:

./h3 –profile \ -d ./MiniMax-H3 \ -p A surfer rid­ing in­side a sharp blue ocean wave, one rider and one white board, re­al­is­tic spray.” \ –width 512 –height 512 –frames 22 –steps 20 \ –layers 45 –reuse 2 –token-reduction \ -o out­puts/​surfer-fast.mp4

At the val­i­dated 512 square shape, to­ken re­duc­tion cut the 45 lay­ers + reuse 2 de­noise pro­file from 16.69 to 12.60 sec­onds on the IT M5 Max. Independent fox and surfer ren­ders stayed co­her­ent, but com­po­si­tion can di­verge more from the close path.

For an ag­gres­sive pre­view, ren­der in­ter­nally at 320 square and up­scale to the re­quested 512 square out­put:

./h3 –profile \ -d ./MiniMax-H3 \ -p A red fox walk­ing through snow, re­al­is­tic, track­ing shot.” \ –width 512 –height 512 \ –render-width 320 –render-height 320 \ –frames 22 –steps 20 –layers 40 –reuse 3 \ -o out­puts/​fox-ag­gres­sive.mp4

This com­bi­na­tion pro­duced a clean, rec­og­niz­able 22-frame fox in val­i­da­tion, but loses fine de­tail and can change fram­ing. Do not add –token-reduction to both –layers 40 and –reuse 3: that tested com­bi­na­tion pro­duced color ring­ing, out­lines, and ghosted limbs.

As an al­ter­na­tive to whole-ve­loc­ity reuse, this keeps the timestep-de­pen­dent patch and out­put heads fresh at every tran­si­tion:

./h3 –profile \ -d ./MiniMax-H3 \ -p A surfer rid­ing a blue ocean wave.” \ –width 512 –height 512 –frames 22 –steps 20 \ –layers 45 –core-reuse 4 \ -o out­puts/​surfer-core-reuse.mp4

Use –core-reuse 6 only as an ag­gres­sive pre­view. Values above 6 are not ex­posed be­cause val­i­da­tion lost sub­ject fi­delity.

5. Pick res­o­lu­tion and du­ra­tion

Width and height must each be mul­ti­ples of 32, at least 32, and their prod­uct must not ex­ceed 768 * 1344 pix­els. Those are me­chan­i­cal lim­its, not a promise that every tiny can­vas has good model qual­ity. H3-Base is a 768p model.

For a fast na­tive 256-square pre­view:

./h3 -d ./MiniMax-H3 \ -p A red fox walks through fresh snow in a pine for­est.” \ –width 256 –height 256 \ –frames 22 –steps 20 \ –layers 50 –reuse 1 \ -o out­puts/​fox-256.mp4

At 256 square, H3 has only an 8x8 ef­fec­tive spa­tial-to­ken grid, so it has less room for fine de­tail and com­plex com­po­si­tion. H3 au­to­mat­i­cally halves spa­tial RoPE co­or­di­nates at ex­actly 256 square. This re­moved re­peat­ing lat­tice ar­ti­facts in long fox ren­ders and stayed co­her­ent on an in­de­pen­dent por­trait, with­out adding to­kens or run­time. Use –use-reference-rope to re­store the re­leased/​MLX co­or­di­nates for par­ity checks. Keep to­ken re­duc­tion off at this size. Native 128 square re­mains un­sup­ported: its 4x4 to­ken grid did not re­cover a rec­og­niz­able sub­ject even with ad­justed RoPE.

–render-width and –render-height must be set to­gether, must have the same as­pect ra­tio as the out­put, and can­not ex­ceed the out­put di­men­sions. The model and VAE use the in­ter­nal size; ter­mi­nal frames and the en­coded video re­tain the re­quested out­put size.

H3 emits 24 fps and aligns frame re­quests up­ward to 5 + 17*n:

Use –seconds N for a du­ra­tion-ori­ented re­quest, or –frames N for di­rect frame con­trol; the two op­tions are mu­tu­ally ex­clu­sive. Fractional sec­onds are ac­cepted. Seconds are con­verted at 24 fps and then rounded up­ward to the next le­gal H3 tem­po­ral shape, so –seconds 10 pro­duces 243 frames (10.125 sec­onds).

Short clips are use­ful for de­vel­op­ment. The re­leased work­flow is in­tended for roughly 4 – 15 sec­ond videos. A re­quest such as –frames 23 is rounded up to 39 frames rather than pro­duc­ing an ar­bi­trary tem­po­ral shape.

6. Improve the prompt

A short prompt works, but the re­leased sys­tem ex­pects a Context-IR-like de­scrip­tion. State the sub­ject, ac­tion, set­ting, cam­era, light­ing/​style, and de­sired sound. For ex­am­ple:

Scene: a sin­gle red fox in a snow-cov­ered pine for­est at dawn. Action: the fox walks steadily left to right and looks to­ward the cam­era once. Camera: medium-height lat­eral track­ing shot, 50 mm lens, sta­ble fram­ing. Look: pho­to­re­al­is­tic fur, cold blue am­bi­ent light, warm sun­rise rim light. Audio: soft foot­steps in snow, light wind through pine branches, no mu­sic.

Keep iden­tity and ob­ject counts ex­plicit when they mat­ter. –seed N con­trols the na­tive ran­dom stream; the de­fault is 42. Compare op­tions with the same prompt, seed, res­o­lu­tion, frame count, and step count.

7. Preview frames and di­ag­nose per­for­mance

–show dis­plays a rep­re­sen­ta­tive frame af­ter every de­nois­ing tran­si­tion, fol­lowed by all frames from the com­pleted video. Like Iris, it ad­ver­tises 2x dis­play di­men­sions by de­fault for Retina ter­mi­nals; –zoom N changes that fac­tor with­out re­siz­ing the gen­er­ated video or the en­coded ter­mi­nal im­age.

–frames-dir DIR writes fi­nal call­back frames as PPM files. Intermediate –show pre­views are not writ­ten there.

-o ’ dis­ables MP4 en­cod­ing; com­bine it with –frames-dir when FFmpeg is un­avail­able.

–profile re­ports phase wall time, Metal en­cod­ing/​wait time, peak live ten­sor stor­age, cu­mu­la­tive al­lo­ca­tion, and dis­patch counts.

For ex­am­ple:

./h3 –profile -d ./MiniMax-H3 -p A hum­ming­bird hov­er­ing over red flow­ers.” \ –width 512 –height 512 –frames 22 –steps 20 \ –layers 45 –reuse 2 –frames-dir out­puts/​hum­ming­bird-frames \ -o

8. Add im­age, video, and au­dio ref­er­ences

First/last-frame an­chors se­lect the FL2VA path:

./h3 -d ./MiniMax-H3 -p The fox keeps walk­ing through the snow.” \ –width 512 –height 512 –frames 22 –steps 20 \ –layers 45 –reuse 2 \ –first-frame fox.png –last-frame fox-later.png \ -o out­puts/​fox-an­chored.mp4

Ordered ref­er­ences se­lect the dis­tinct Ref2VA check­point. Use the flag match­ing the me­dia se­man­tics:

# One im­age ref­er­ence. ./h3 -d ./MiniMax-H3 -p Use the an­i­mal and set­ting in the ref­er­ence.” \ –width 512 –height 512 –frames 22 –steps 20 \ –ref-image fox.png -o out­puts/​fox-ref­er­ence.mp4

# Continue a clip but ig­nore its sound­track. ./h3 -d ./MiniMax-H3 -p Continue the mo­tion in this clip.” \ –width 512 –height 512 –frames 22 –steps 20 \ –ref-silent-video fox.mp4 -o out­puts/​fox-video-ref­er­ence.mp4

# Preserve the clip’s em­bed­ded au­dio. ./h3 -d ./MiniMax-H3 -p Continue this au­dio­vi­sual scene.” \ –width 512 –height 512 –frames 56 –steps 20 \ –ref-video fox-with-au­dio.mp4 -o out­puts/​fox-video-au­dio.mp4

# Replace a video’s sound­track ex­plic­itly. ./h3 -d ./MiniMax-H3 -p Continue the scene with the sup­plied mu­sic.” \ –width 512 –height 512 –frames 56 –steps 20 \ –ref-video-audio silent-fox.mp4 re­place­ment.wav \ -o out­puts/​fox-re­placed-au­dio.mp4

# An or­dered im­age plus stand­alone au­dio ref­er­ence. ./h3 -d ./MiniMax-H3 -p Use the an­i­mal and mu­sic from the ref­er­ences.” \ –width 512 –height 512 –frames 56 –steps 20 \ –ref-image fox.png –ref-audio mu­sic.wav \ -o out­puts/​fox-im­age-au­dio.mp4

Reference flags may be re­peated and their com­mand-line or­der is pre­served. Standalone au­dio must ac­com­pany an im­age or video ref­er­ence. Audio ref­er­ences must be 2 – 15 sec­onds; at most three au­dio in­puts are ac­cepted and their to­tal de­coded du­ra­tion is capped at 15 sec­onds.

Tests and run­time re­quire­ments

make test make par­ity

make test runs the de­ter­min­is­tic host suite and, when the ig­nored MLX fix­ture is in­stalled un­der misc/​fix­tures/, com­piles the Metal source at run­time and checks a com­plete toy H3 block against named MLX out­puts. Runtime com­pi­la­tion is in­ten­tional: it fol­lows Iris and does not re­quire Xcode’s op­tional of­fline Metal tool­chain. The test cov­ers both an F32 di­ag­no­sis path and the pro­duc­tion BF16 stor­age path; wide BF16 ma­trix prod­ucts and SDPA use cached MPSGraph graphs, with di­rect Metal cor­rect­ness fall­backs. make par­ity runs only those Metal/MLX checks.

FFmpeg and FFprobe must be avail­able on PATH for me­dia in­puts and MP4 out­put (H3_FFMPEG and H3_FFPROBE may se­lect ex­plicit ex­e­cuta­bles). Generated RGB24 and 32 kHz stereo F32 PCM are fed through con­cur­rent pipes; no in­ter­me­di­ate un­com­pressed me­dia file is cre­ated.

Implementation and per­for­mance notes

The re­main­der doc­u­ments the im­ple­men­ta­tion be­hind the tu­to­r­ial pre­sets and the en­vi­ron­ment vari­ables re­tained for ex­act A/B di­ag­no­sis.

Sampler and DiT con­trols

The de­fault sam­pler uses the re­leased shifted video/​au­dio sched­ule. –steps al­ways names the num­ber of de­nois­ing passes, with ter­mi­nal zero added af­ter the last pass. Whole-denoiser reuse eval­u­ates the first and last pass plus every re­quested in­ter­val, then ex­trap­o­lates skipped video and au­dio ve­loc­i­ties on their in­de­pen­dent sched­ules. With very small step counts, keep –reuse 1.

For the low-bud­get path, the re­leased lin­ear base grid won against ac­tual-video-sigma lin­ear spac­ing, qua­dratic and cu­bic warps, ex­act 30-point tail sub­sets, mild power warps, zero-or­der held full-grid ve­loc­i­ties, lin­ear ve­loc­ity ex­trap­o­la­tion, and RES. The more tail-heavy can­di­dates of­ten sharp­ened the sub­ject but dam­aged mo­tion or left a repet­i­tive wo­ven back­ground; sparse RES and long ex­trap­o­la­tion in­ter­vals failed much more vis­i­bly.

Layer thin­ning ranks the check­point’s ac­tual AdaLN gates while pro­tect­ing struc­turally im­por­tant first and fi­nal blocks. Unused weights and sched­ule ten­sors are not re­tained, so –layers 45 and –layers 40 re­duce both trans­former time and uni­fied-mem­ory use. Core reuse holds the pre­vi­ous full trans­former resid­ual while re­fresh­ing the patch pro­jec­tion and timestep-aware head; it re­mains mu­tu­ally ex­clu­sive with whole-ve­loc­ity reuse.

Exact DiT fu­sions

Every ac­tive DiT block fuses its at­ten­tion resid­ual gate with the fol­low­ing MLP AdaLN. The rounded BF16 resid­ual is still writ­ten ex­actly, but the same row is kept in thread­group mem­ory for nor­mal­iza­tion, elim­i­nat­ing one dis­patch and one global reread. Away from to­ken-re­duc­tion bound­aries, the MLP resid­ual gate also pro­duces the next block’s at­ten­tion AdaLN and car­ries that nor­mal­ized state across the loop. H3_DISABLE_FUSED_GATE_ADALN=1 and H3_DISABLE_FUSED_CROSS_BLOCK_ADALN=1 re­store the two-ker­nel or­a­cles. The fi­nal au­dio/​video AdaLN ker­nels bind di­rectly to off­sets in the resid­ual stream, avoid­ing two slice blits and 18.8 MiB of scratch at 512x512 (29.4 MiB at the 864-class bench­mark shape). H3_DISABLE_FUSED_FINAL_SLICE=1 re­stores the copy-plus-AdaLN or­a­cle at load. The BF16 fi­nal heads then ap­ply AdaLN while load­ing their 16x16 pro­jec­tion tiles, pre­serv­ing the stand­alone round­ing and ac­cu­mu­la­tion or­der while re­mov­ing an­other equally sized nor­mal­ized ac­ti­va­tion. The two op­ti­miza­tions to­gether save 37.5/58.9 MiB. H3_DISABLE_FUSED_FINAL_HEAD=1 re­stores the off­set-AdaLN-plus-lin­ear or­a­cle at load.

Token-reduction in­ter­nals

–token-reduction is an in­de­pen­dent ag­gres­sive DiT mode. After block 3 it pairs ad­ja­cent hor­i­zon­tal tar­get-video to­kens while leav­ing text, au­dio, con­di­tions, and ref­er­ence to­kens ex­act. The com­plete full-res­o­lu­tion state is kept as a by­pass. During the first ten noisy eval­u­a­tions it re­stores be­fore block 40; sub­se­quent de­tail-form­ing eval­u­a­tions re­store be­fore block 30. Each to­ken re­turns as its orig­i­nal value plus the up­date learned by its pair, so within-pair de­tail is not dis­carded. The pool­ing ker­nel writes only true-pair base­lines into a dense tail of the al­ready al­lo­cated at­ten­tion scratch buffer; odd-width sin­gle­ton to­kens need no base­line. The full by­pass uses the over­sized QKV tail when it fits, with a guarded ded­i­cated fall­back only for ref­er­ence-heavy lay­outs. Common text-only can­vases there­fore add no ac­ti­va­tion arena at any to­ken-grid width. Pooling also snap­shots both source to­kens while their BF16 val­ues are al­ready in reg­is­ters, avoid­ing a sep­a­rate full-hid­den blit and re­dun­dant source read. The same en­try ker­nel keeps each pooled row in thread­group mem­ory and emits the first re­duced block’s at­ten­tion AdaLN, elim­i­nat­ing an­other global resid­ual read. At the re­store bound­ary, the first full-res­o­lu­tion at­ten­tion AdaLN is fused into ex­pan­sion: a 10.5 KiB thread­group row avoids a global resid­ual reread while still writ­ing the ex­act by­pass needed by the fol­low­ing resid­ual branch. On a ther­mal-bal­anced 512x512x22, 19-forward IT M5 Max A/B this re­duced de­noise time from 39.13 to 28.06 sec­onds (28.3%). Final video/​au­dio la­tent rel­a­tive L2 was 5.56%/15.14%. First/middle/last fox frames re­tained one clean muz­zle, co­her­ent legs, and sharp fur; an in­de­pen­dent surfer re­mained con­sis­tent with one rider and board through the wave spray. It changes com­po­si­tion and is there­fore opt-in rather than the close-ref­er­ence de­fault. H3_TOKEN_REDUCTION_BLOCKS can over­ride the later 4:30 in­ter­val; H3_TOKEN_REDUCTION_EARLY=STEPS:END over­rides the early sched­ule and 0 dis­ables it. H3_DISABLE_TOKEN_REDUCTION=1 pro­vides an in-con­text ex­act or­a­cle. H3_DISABLE_FUSED_TOKEN_POOL_ADALN=1 and H3_DISABLE_FUSED_TOKEN_ADALN=1 in­de­pen­dently re­store the two-ker­nel en­try and exit bound­aries for di­ag­no­sis. Token re­duc­tion com­poses cleanly with the val­i­dated –layers 45 –reuse 2 set­tings: on the same 512 bench­mark it re­duced that pro­file from 16.69 to 12.60 sec­onds (24.5% mar­ginal), and in­de­pen­dent fox and surfer ren­ders stayed co­her­ent. Do not com­bine it with both –layers 40 and –reuse 3; that 6.47-second ex­per­i­ment pro­duced chro­matic ring­ing and ghosted limbs de­spite ac­cept­able la­tent norms.

Internal can­vas and video VAE

–render-width and –render-height run the model and VAE on a lower same-as­pect in­ter­nal can­vas, then high-qual­ity vIm­age-scale RGB frames to the re­quested out­put size be­fore call­backs, ter­mi­nal dis­play, and en­cod­ing. This is an ex­plicit qual­ity/​speed trade­off: a mea­sured 384-to-512 prompt ren­der re­duced M5 DiT time by 33% and video-VAE time by 18% while re­tain­ing a clean, rec­og­niz­able pho­to­re­al­is­tic re­sult. Both val­ues must be mul­ti­ples of 32; the ex­act out­put can­vas re­mains the de­fault. For square 512 out­put, 384 is the fast-qual­ity point and 320 is the val­i­dated ag­gres­sive point. The lat­ter pro­duced a co­her­ent walk­ing fox and re­peated at 8.02 sec­onds of DiT ver­sus about 15.82 sec­onds na­tively. Native 256 uses the same-cost spa­tial-RoPE adap­ta­tion de­scribed above; it re­mains a fast com­po­si­tion pre­view rather than a sub­sti­tute for a 512- or 768-class fi­nal ren­der. The video VAE au­to­mat­i­cally chooses a 256 – 320 pixel spa­tial tile from the re­quested can­vas geom­e­try, min­i­miz­ing re­peated over­lap work while keep­ing peak stor­age bounded. H3_VAE_TILE_PIXELS=256 re­stores the orig­i­nal con­ser­v­a­tive tile plan for close-ref­er­ence di­ag­no­sis.

Weight res­i­dency and streamed prompt en­cod­ing

Stowaway — Ride along with anything in the sky

stowaway.live

Pick any air­craft or satel­lite pass­ing over your house right now, and go sit in its win­dow seat.

The sky here is the real one out­side — your lo­ca­tion, your weather, this min­ute’s light — with the air­craft and satel­lites that are gen­uinely over­head. Click one and the cam­era fol­lows it; stow away and it takes a seat on board, over real ter­rain.

All of that is drawn in real time, which needs JavaScript and WebGL 2. Switching JavaScript on for this site should do it.

Illinois HB5511: What It Means for Linux and Open Source

linuxstans.com

HB5511 is of­fi­cially about TikTok and Instagram. Read past the press re­lease and it’s also about your op­er­at­ing sys­tem.

Governor JB Pritzker’s press re­lease on HB5511 is thick with quotes from leg­is­la­tors and ad­vo­cacy groups, and it names Instagram, TikTok, Snapchat, X, Facebook, and Roblox specif­i­cally. Device setup gets one men­tion, framed as some­thing a par­ent con­fig­ures dur­ing setup. Nowhere does it ex­plain that the law also cre­ates a sep­a­rate le­gal cat­e­gory called an op­er­at­ing sys­tem provider, with its own 2028 dead­line and its own civil penal­ties, that has noth­ing to do with what any par­ent chooses to click.

TL;DR

HB5511, the Children’s Social Media Safety Act, is now Illinois Public Act 104 – 0664. Pritzker signed it July 31.

The head­line pro­vi­sions tar­get so­cial plat­forms: no al­go­rith­mic feeds for mi­nors by de­fault, no no­ti­fi­ca­tions be­tween 10pm and 7am, no con­tact from adult strangers.

A sep­a­rate part of the bill de­fines op­er­at­ing sys­tem provider and cov­ered man­u­fac­turer broadly enough to in­clude any­one who builds an in­ter­net-con­nected OS, com­mer­cial or non­profit.

By January 1, 2028, those providers have to build an age-de­c­la­ra­tion step and hand an age-bracket sig­nal to any app that re­quests one.

Unlike Colorado, and un­like where California is head­ing, Illinois added no ex­emp­tion for open source soft­ware.

Enforcement runs through the Illinois Attorney General only. The bil­l’s own text caps penal­ties at $7,500 per af­fected child. The gov­er­nor’s press re­lease ad­ver­tises penal­ties of up to $50,000 per vi­o­la­tion. Those num­bers don’t ob­vi­ously square with each other.

The Version Illinois Wants You to Read

Set the op­er­at­ing sys­tem ques­tion aside for a sec­ond, be­cause the so­cial me­dia half of this bill is fairly stan­dard for 2026. Platforms built around al­go­rith­mic feeds, plus plat­forms where kids can be con­tacted by strangers (Roblox is the named ex­am­ple), now have to de­fault mi­nors into chrono­log­i­cal, fol­low-only feeds in­stead of an en­gage­ment-op­ti­mized one. Notifications get cut off overnight. Adult strangers can’t see a mi­nor’s pro­file, mes­sage them, or see their lo­ca­tion. News sites, email providers, broad­band com­pa­nies, and school soft­ware are all carved out by name.

It passed the General Assembly on June 1 with­out a sin­gle no vote, 57 – 0 in the Senate and 113 – 0 in the House con­cur­rence. Pritzker signed it July 31, flanked by quotes from Attorney General Kwame Raoul and groups like Common Sense Media and Mothers Against Media Addiction. Nothing about that roll­out men­tions your desk­top.

The Part the Press Release Skipped

Here’s what ac­tu­ally set off the Reddit thread: a post claim­ing Illinois now re­quires op­er­at­ing sys­tem providers, open source pro­jects in­cluded, to build age ver­i­fi­ca­tion by 2028. It was­n’t uni­ver­sally be­lieved. On at least one mir­ror of the dis­cus­sion, a com­menter ar­gued the fram­ing was mis­lead­ing and that the post should be cor­rected. So in­stead of trust­ing a screen­shot ei­ther way, we went and read the bill on the Illinois General Assembly’s own tracker.

It holds up. Separate from the so­cial me­dia rules, HB5511 cre­ates du­ties for an op­er­at­ing sys­tem provider and folds de­vice mak­ers, OS ven­dors, and app stores to­gether un­der the term cov­ered man­u­fac­turer. Legislative track­ers that fol­low this ex­act cat­e­gory of bill across states file this piece un­der its own name: Digital Age Assurance, the same bucket Colorado’s and California’s ver­sions land in.

What Every Covered Manufacturer Has to Build by 2028

An ac­ces­si­ble setup screen that asks an ac­count holder to in­di­cate a birth date, an age, or both.

A way for any app or plat­form that asks (the bill calls them operators” and covered de­vel­op­ers”) to re­ceive a sig­nal for that age, de­liv­ered through a con­sis­tent, en­crypted API.

A hard limit on what gets shared: only the min­i­mum in­for­ma­tion needed to an­swer the ques­tion, and no hand­ing it to a third party be­yond what the law re­quires.

The sig­nal it­self is­n’t a birth­day, it’s a bracket: un­der 13, 13 to 15, 16 to 17, or 18 and up. Operating sys­tems have un­til January 1, 2028 to have this built. Platforms then have un­til July 1, 2028 to start ac­tu­ally re­quest­ing that sig­nal for their users. Once an app gets a minor” bracket back, the law treats it as hav­ing ac­tual knowl­edge the user is un­der­age, which is what flips on every de­fault pro­tec­tion in the so­cial me­dia half of the bill.

Nothing in the bill re­quires a pass­port scan or a face scan at setup. It’s self-de­clared, the same way most apps ask your birth­day to­day, just cen­tral­ized once at the OS level in­stead of re­peated app by app. That’s ex­actly why a good chunk of the r/​linux replies were jokes about set­ting their in­stal­l’s date of birth to some­time in the Nixon ad­min­is­tra­tion.

Nobody Carved Out an Exception This Time

This struc­ture, OS hands out an age bracket, apps pull it through an API, al­ready showed up in Colorado and California, and both ran into the same ob­jec­tion: the de­f­i­n­i­tions were broad enough to catch com­mu­nity-run, non­com­mer­cial, open source pro­jects with no re­al­is­tic way to run an age-gated setup wiz­ard, let alone a com­pli­ance de­part­ment.

Colorado fixed it. Governor Jared Polis signed SB26 – 051 on June 3, and largely be­cause System76 founder Carl Richell worked di­rectly with the bil­l’s co-au­thor, State Senator Matt Ball, the fi­nal ver­sion ex­empts op­er­at­ing sys­tems, apps, code repos­i­to­ries like GitHub and GitLab, and con­tainer plat­forms like Docker and Podman, as long as they’re dis­trib­uted un­der an open li­cense. It also blocks a ven­dor from lock­ing down a mod­i­fied ver­sion of the soft­ware just to dodge the ex­emp­tion.

California is try­ing to get to the same place. Its orig­i­nal law, AB-1043, had the iden­ti­cal gap. Assemblymember Buffy Wicks, who wrote that bill, in­tro­duced a fol­low-up, AB-1856, specif­i­cally to re­de­fine op­er­at­ing sys­tem provider so it ex­cludes any­one ship­ping soft­ware un­der those same open terms. As of this writ­ing, that fix is still mov­ing through Sacramento, not fin­ished.

Illinois skipped that step en­tirely. HB5511s de­f­i­n­i­tions for cov­ered man­u­fac­turer and ap­pli­ca­tion store are ex­actly as broad as Colorado’s and California’s were be­fore any­one patched them. The struc­ture is­n’t unique to Illinois, ei­ther: California did it first, Colorado fol­lowed the same blue­print, and HB5511 reads like a close cousin of both, same age brack­ets, same API-based sig­nal, same per-child penalty fig­ures.

Even Big Tech’s Own Lobby Hated This One

Before Pritzker signed any­thing, the Electronic Frontier Foundation sent him a let­ter ask­ing for a veto, call­ing the bill a mas­sive pri­vacy and free speech night­mare” and nam­ing the open source ecosys­tem specif­i­cally as one of the things it put at risk. EFF grouped Illinois with a wider run of state bills lean­ing on child safety lan­guage to jus­tify sweep­ing age-ver­i­fi­ca­tion man­dates.

Separately, and for very dif­fer­ent rea­sons, NetChoice, the trade group that counts com­pa­nies like Google and Meta among its mem­bers, filed tes­ti­mony op­pos­ing the same bill. Its ob­jec­tion was First Amendment law and the risk of ex­pos­ing sen­si­tive user data, not open source specif­i­cally. It’s an odd pair­ing: a dig­i­tal rights non­profit and the lob­by­ing arm for the plat­forms the bill is sup­posed to be reg­u­lat­ing, ar­gu­ing against the same bill for op­po­site rea­sons. Illinois law­mak­ers passed it unan­i­mously any­way.

Could Anyone Actually Enforce This?

Only the Illinois Attorney General can bring a case. There’s no pri­vate right of ac­tion, so an in­di­vid­ual can’t sue over this per­son­ally. The civil penalty writ­ten into the bill it­self is up to $2,500 per af­fected child for a neg­li­gent vi­o­la­tion and up to $7,500 per af­fected child for an in­ten­tional one. That’s not a co­in­ci­dence: it’s the ex­act same fig­ure Colorado’s law uses, be­cause these bills are largely work­ing from the same tem­plate as they spread state to state.

Set that against the gov­er­nor’s own press re­lease, which ad­ver­tises penal­ties of up to $50,000 per vi­o­la­tion. It’s pos­si­ble both num­bers are tech­ni­cally ac­cu­rate and just re­fer to dif­fer­ent sec­tions of a fairly long piece of leg­is­la­tion, but noth­ing in the state’s own ma­te­ri­als rec­on­ciles them for the reader, and the big­ger num­ber is the one that made it into the an­nounce­ment.

As for ac­tu­ally reach­ing a hob­by­ist dis­tro main­tainer: noth­ing in the bill has teeth against some­one with no busi­ness pres­ence in Illinois, which is ex­actly the loop­hole half of r/​linux jumped to im­me­di­ately. Expect a wave of joke warn­ing la­bels on dis­tro down­load pages long be­fore any­one pays a fine. The providers who can’t shrug this off are the ones al­ready do­ing real busi­ness in the state, mean­ing Google, Microsoft, Apple, and any Linux ven­dor with ac­tual Illinois rev­enue on the books.

What Happens Between Now and 2028

The com­pli­ance dead­line is still more than a year out, which leaves room for a few things to hap­pen be­fore it mat­ters. NetChoice has al­ready chal­lenged com­pa­ra­ble so­cial me­dia and age-ver­i­fi­ca­tion laws in Mississippi, Colorado, California, Louisiana, Georgia, and Ohio, with mixed re­sults, some pro­vi­sions blocked, oth­ers up­held. Given that track record, a chal­lenge to HB5511 specif­i­cally would­n’t be a shock, though noth­ing had been filed as of this writ­ing. There’s also room for an amend­ment adding the same open source carve-out Colorado and California landed on. Or there’s room for noth­ing to change, in which case Illinois be­comes the ver­sion other states copy in­stead of the ex­cep­tion.

Which of those hap­pens prob­a­bly de­pends on whether the open source com­mu­nity shows up in Springfield the way Carl Richell showed up in Denver. Nobody did this time. There’s still time to change that be­fore January 1, 2028 turns into a dead­line that ac­tu­ally bites.

How Claude marks AI-generated content

support.claude.com

Updated to­day

Anthropic has signed the EU AI Act’s Article 50(2) Code of Practice on Transparency of AI-Generated Content, as a provider of both gen­er­a­tive AI mod­els and gen­er­a­tive AI sys­tems. This ar­ti­cle de­scribes how we’re plan­ning to put those com­mit­ments into prac­tice, how mark­ing works, and what its lim­i­ta­tions are. We’ll up­date this ar­ti­cle and pub­lish more de­tailed tech­ni­cal guid­ance as it be­comes avail­able.

Machine-readable marks in Claude-generated con­tent

As AI-generated con­tent be­comes com­mon­place, greater trans­parency and sig­nals about where con­tent comes from can give peo­ple use­ful con­text about the in­for­ma­tion they con­sume. To sup­port trans­parency and com­ply with our le­gal oblig­a­tions, Anthropic is work­ing to in­clude ma­chine-read­able marks in con­tent that Claude gen­er­ates.

What’s cov­ered

How Claude marks con­tent

Claude uses two com­ple­men­tary tech­niques to mark con­tent gen­er­ated and processed by Claude: (1) wa­ter­marks em­bed­ded in text, and (2) signed prove­nance meta­data at­tached to files.

1. Embedded wa­ter­marks in text

When a sup­ported Claude model gen­er­ates text, it weaves an im­per­cep­ti­ble wa­ter­mark di­rectly into the text it­self. You won’t see it, and it does­n’t change the mean­ing, qual­ity, or read­abil­ity of Claude’s re­sponse.

Because the wa­ter­mark is part of the text, it will travel with the text when it’s copied and pasted else­where, and may per­sist through some edit­ing. Watermarking will be ap­plied at the model level, which means it will be pre­sent no mat­ter which Claude prod­uct or sur­face the text comes from.

2. Signed prove­nance meta­data

When Claude gen­er­ates a sup­ported file type, such as a .svg, .png, or .jpg, it will at­tach signed prove­nance meta­data. This meta­data fol­lows the Coalition for Content Provenance and Authenticity (C2PA) open stan­dard, which is used across the in­dus­try to record in­for­ma­tion about con­tent prove­nance. If a signed meta­data la­bel is pre­sent, it sig­nals that a file was processed by Claude and lets you de­tect whether the file has been tam­pered with.

Detecting Claude’s marks

We’re also work­ing to en­able users and other third par­ties to de­tect Claude’s em­bed­ded wa­ter­marks and prove­nance meta­data. Detection checks whether a piece of text or a file car­ries a sup­ported Claude mark. If a sup­ported mark is found, it in­di­cates that the con­tent may have been processed by Claude.

We’ll share de­tails on de­tec­tion mech­a­nisms in forth­com­ing tech­ni­cal doc­u­men­ta­tion.

Limitations

Machine-readable marks pro­vide im­por­tant sig­nals about con­tent, but it’s worth un­der­stand­ing their lim­i­ta­tions across all con­tent types.

If you build with Claude

If you de­ploy Claude in your own prod­uct, you should in­de­pen­dently as­sess what Article 50 re­quires of your prod­ucts and ser­vices. Consistent with our com­mit­ments un­der the EU Code, our goal is to sup­port you in meet­ing your own trans­parency oblig­a­tions, and we’ll share tech­ni­cal guid­ance on our mark­ing and de­tec­tion ap­proach as it be­comes avail­able.

Related Articles

Claude is pro­vid­ing in­cor­rect or mis­lead­ing re­sponses. What’s go­ing on?

Create and edit files with Claude

Can I use my Outputs to train an AI model?

Log in to your Claude ac­count

Get started with Claude for Government

To add this web app to your iOS home screen tap the share button and select "Add to the Home Screen".

10HN is also available as an iOS App

If you visit 10HN only rarely, check out the the best articles from the past week.

Visit pancik.com for more.