10 interesting stories served every morning and every evening.

Claude Code uses Bun written in Rust now

simonwillison.net

19th July 2026

In Rewriting Bun in Rust Jarred Sumner made the fol­low­ing claim:

Claude Code v2.1.181 (released June 17th) and later use the Rust port of Bun. Startup got 10% faster on Linux but oth­er­wise, barely any­one no­ticed. Boring is good.

Claude Code v2.1.181 (released June 17th) and later use the Rust port of Bun. Startup got 10% faster on Linux but oth­er­wise, barely any­one no­ticed. Boring is good.

I de­cided to have a poke at my own Claude Code in­stal­la­tion to see if I could find ev­i­dence that it was us­ing Bun writ­ten in Rust.

I found these two com­mands con­vinc­ing:

strings ~/.local/bin/claude | grep -m1 Bun v1’

For me this out­puts Bun v1.4.0 (macOS ar­m64). The most re­cent re­lease of Bun on GitHub is cur­rently v1.3.14 from May 12th, so that v1.4.0 ver­sion num­ber in Claude sup­ports them ship­ping a pre­view of a not-yet-re­leased Bun ver­sion.

(Update: The Rust ver­sion has been re­leased as Bun ca­nary - run­ning bun up­grade –canary will in­stall this re­lease.)

strings ~/.local/bin/claude | grep -Eo src/[[:alnum:]_./-]+\.rs’

This out­puts a list of 563 file­names, start­ing with these:

src/​run­time/​bake/​de­v_server/​mod.rs src/​run­time/​bake/​pro­duc­tion.rs src/​bundler/​bun­dle_v2.rs

It looks like Bun in Rust is in­deed be­ing run in pro­duc­tion across mil­lions of dif­fer­ent de­vices. Like Jarred said, Boring is good”.

Update: Here’s a neat trick from Ajan Raj:

cat > /tmp/bun-version.ts <<‘EOF’ con­sole.log(“em­bed­ded bun:”, Bun.version); process.exit(0); EOF BUN_OPTIONS=“–preload=/tmp/bun-version.ts” claude –version

This out­puts 1.4.0 for me.

Here’s the com­mit from May 17th that up­dated the ver­sion in pack­age.json to 1.4.0. That ver­sion has­n’t been changed since then, but also has­n’t yet made it into a tagged re­lease out­side of ca­nary.

Hardware is not so hard

chipweinberger.com

What I learned sell­ing 2500 MIDI recorders, part 1: Hardware is not so hard

A year and a half ago, I launched Jamcorder.

It marked the com­ple­tion of two life goals of mine.

First, I fi­nally had the pi­ano record­ing de­vice I’d al­ways wanted: a fully au­to­mated de­vice that cap­tures every­thing I play, no hu­man-in­volve­ment re­quired.

And sec­ond, af­ter a ca­reer in soft­ware, I got to build hard­ware. It was su­per fun.

2500 units have al­ready been sold, and count­ing! People gen­uinely love it! And it’s able to stand on its own feet as a busi­ness. In my eyes, that’s a suc­cess.

For my first blog post, I want to re­flect on the biggest sur­prise I en­coun­tered cre­at­ing Jamcorder.

Coming from a ca­reer in soft­ware, I ex­pected build­ing hard­ware to be the hard­est part.

After all, hard­ware is hard. That’s the say­ing, right?

Electronics de­sign, plas­tics, man­u­fac­tur­ing, ful­fil­ment, com­po­nent short­ages, etc, etc, etc.

I ex­pected these & more to make hard­ware hard.

But, it was­n’t.

I kept wait­ing for some­thing to get me by sur­prise. A scrapped pro­duc­tion run (my worst night­mare). Or com­po­nent sourc­ing is­sues, per­haps?

It never hap­pened. (Though Trump’s tar­iffs were a close call).

The hard­est part of build­ing Jamcorder was still, by far, the soft­ware — roughly 200K lines of code spread across the firmware, app, and man­u­fac­tur­ing tool­ing. It took over 3 years and many long nights in a pre-LLM world.

When com­pared to that, the hard­ware was un­de­ni­ably smooth sail­ing.

For the record, I don’t think I’m spe­cial. It’s just that hard­ware’s rep­u­ta­tion for be­ing dif­fi­cult is, IMO, over­stated.

Now, granted, Jamcorder is — very much in­ten­tion­ally — a sim­ple de­vice. I get that.

Assembly is just a sin­gle screw, for a sin­gle PCB. The in­jec­tion mold has gen­er­ous draft, no slides.

I cut low bat­tery de­tec­tion, am­bi­ent light de­tec­tion, the power-but­ton, even USB-C.

All these things kept Jamcorder sim­ple.

I’m also un­der no il­lu­sion that 2500 units is a lot by most stan­dards.

But you know what? The hard­ware side would have been easy re­gard­less.

Don’t get me wrong. If Jamcorder was 10x more com­plex, or 100x more scale, that would be a dif­fer­ent story (and a very pop­u­lar prod­uct!).

Or if I was try­ing to com­pete in the smart­watch mar­ket, or the car mar­ket, or any num­ber of very es­tab­lished in­dus­tries with low mar­gins, good luck.

But for me the take away still is: hardware is as hard as you make it”.

If you’re think­ing about build­ing a hard­ware prod­uct & have a way to pro­tect your mar­gins, don’t let build­ing hard­ware scare you.

It’s not as hard as the say­ing goes.

POSTSCRIPT

I don’t want to end this ar­ti­cle with­out some prac­ti­cal take-aways. So here are my top rec­om­men­da­tions for suc­cess­fully ship­ping hard­ware that worked for me at medium scale:

Keep your BOM sim­ple. Avoid sin­gle-man­u­fac­turer com­po­nents wher­ever pos­si­ble.

Avoid com­plex as­sem­bly and cal­i­bra­tion.

Partner with a Chinese as­sem­bly house and sup­pli­ers. Alibaba is your friend.

Aim for at least 70% gross mar­gin or more.

Keep your com­pany lean. Scaling hard­ware is slower.

Have a strong anti-coun­ter­feit strat­egy. Don’t over­look this.

Do fi­nal Q/A in-house & hold fin­ished in­ven­tory lo­cally.

Request sam­ples be­fore every pro­duc­tion run.

Write a step-by-step man­u­fac­tur­ing & as­sem­bly guide with pic­tures.

Keep your pack­ag­ing small. A value dense prod­uct makes every­thing eas­ier.

Page not found — Blender

www.blender.org

Wait wait wait wait wait wait.”

Whatever you were look­ing for is no longer here (404)

5.2 LTS — Blender

www.blender.org

Showcase Reel

Watch the Recap Video

Released July 14th, 2026

GEOMETRY NODES

Music to your Nodes

Imagine dri­ving your nodes with im­ported au­dio files, how does that sound?

The Sample Sound Frequencies node, cou­pled with the new Sound socket, brings au­dio-re­ac­tive an­i­ma­tions and sim­u­la­tions to Geometry Nodes.

Sound files can be loaded di­rectly into the node tree. To hear them dur­ing play­back, add them to the Video Sequencer as well, and set Playback Sync to Sync to Audio”.

GEOMETRY NODES

Bevel and be well

A new node en­ters the chat: Mesh Bevel.

The long awaited power of de­tailed pro­ce­dural con­trol over the edges or ver­tices.

Cloth Dynamics

Quickly add a cloth-like be­hav­iour to any mesh with a new node-based mod­i­fier (and a node group as well). Comes with a list of built-in con­trols for pin­ning, tear­ing, con­trol­ling stretch and bendi­ness.

Hair Dynamics

Hair physics work sim­i­larly to cloth: the only ex­tra re­quire­ment is hav­ing a sur­face ob­ject to at­tach hair to. The set up it­self can be au­to­mated with the up­dated Empty hair op­er­a­tor.

Effectors

New node-based dy­nam­ics come with a bunch of built-in ef­fec­tors for ef­fort­less grav­ity and/​or sur­face col­li­sion ap­pli­ca­tion. In 5.2. LTS, three types of cus­tomis­able ef­fec­tors are avail­able:

Colliders

Apply a Collider mod­i­fier to trans­form any closed mesh into a col­li­sion ob­ject. Or go fur­ther in a fully pro­ce­dural set up and use the col­lider ef­fec­tor bun­dle and pass into the dy­nam­ics node.

Forces

Built-in grav­ity setup is avail­able, as well as end­less pos­si­bil­i­ties to build your own cus­tom forces.

Custom ef­fec­tors

Inject fully cus­tom be­hav­iour into sim­u­la­tions us­ing Closure and Custom Effector nodes.

Tag&Filter

Tag-based fil­ter­ing sys­tem for ef­fec­tors is also here to eas­ily de­ter­mine which geome­tries they af­fect. Each sim­u­lated geom­e­try can have mul­ti­ple tags for the ef­fec­tor to spec­ify which tags it should af­fect.

Physics: Solved

Reimagined, node based: Blender 5.2. LTS in­tro­duces a brand new pro­ce­dural ap­proach to physics for hair and cloth sim­u­la­tions.

The power be­hind ex­per­i­men­tal node-based physics lies within the new built-in XPBD Solver node.

While built-in as­sets con­tain use-case spe­cific de­clar­a­tive sys­tems around it, ad­vanced users can cus­tomize the sim­u­la­tions fur­ther. Adapt ex­ist­ing node groups by edit­ing con­straints as needed or cre­ate a new sim­u­la­tion sys­tem from scratch.

What the com­mu­nity is cre­at­ing with node-based physics

Bundle Up

Blender 5.0 in­tro­duced the con­cept of bun­dles, which can now be at­tached to geom­e­try to carry ar­bi­trary data across mod­i­fier and ob­ject bound­aries.

Use new Get Geometry Bundle and Set Geometry bun­dle nodes to un­lock new work­flows and pos­si­bil­i­ties.

More Geometry Nodes

Lists

New core data type that al­lows stor­ing a se­quence of ar­bi­trary length (e.g. num­bers or strings). Lots of new nodes were added to pro­vide con­trol.

Create lists through Field to List and Closure to List nodes.

Access lists with List Length and Get List Item nodes.

Modify lists with clas­sic Math nodes as well as new Filter List and Sort List nodes.

Attributes

The Capture Attribute node now sup­ports se­lec­tion.

The new Rename Attribute node re­names at­trib­utes with a spe­cific pre­fix.

The Get Attribute Names node out­puts a list of the names of at­trib­utes in a geom­e­try, op­tion­ally fil­tered by do­main and data type.

The new Transfer Attributes node can trans­fer an ar­bi­trary num­ber of at­trib­utes from one geom­e­try to an­other.

Attributes can now be stored as 4D float vec­tors (note that Geometry Nodes cur­rently only op­er­ate on 3D vec­tors).

Strings

Geometry Nodes now sup­port String fields.

The Find in String node can now find the first oc­cur­rence from the end.

Remove spe­cific char­ac­ters at the start or end of a string with the new Trim String node.

Reverse the char­ac­ter or­der in a string with the new Reverse String.

Switch be­tween up­per and lower case through the new Set String Case.

String and String to ValueBaseinput.

Split text into a list based on a de­lim­iter with new Split String node.

Empty Objects

Geometry nodes mod­i­fiers can be now ap­plied to emp­ties. Recommended use: cus­tom ef­fec­tors for sim­u­la­tions, pro­ce­dural ef­fects that don’t re­quire orig­i­nal geom­e­try.

Curves

You can now ac­cess built-in at­trib­utes to con­trol the com­pu­ta­tion of the fi­nal curve with the new Set NURBS Order and Set NURBS Weight nodes.

Node Tools

Node tools in­puts are re­mem­bered be­tween op­er­a­tor in­vo­ca­tions.

Node tool in­puts can now be as­signed in Python.

Performance

Internal fields pre-eval­u­a­tion dedu­pli­ca­tion.

Face cor­ner eval­u­a­tion is now avoided in some sam­pling nodes.

Preferences: con­fig­ure a new call stack depth limit for Geometry Nodes.

Other

New in: Collection Children node for ac­cess­ing all the Child Objects and Collections of a Collection as a list.

New in: Principal Component Analysis nodes.

3 new build­ing block nodes as­so­ci­ated with Merge by Distance for ex­panded con­trol over merg­ing.

Node group in­puts: new Scene Frame de­fault in­put type.

Object sock­ets can now have Self Object as a de­fault in­put mode.

Access the in­ter­nal at­tribute which tells in­stances what geom­e­try to in­stance with the new Instance Reference node.

Extract a sin­gle com­po­nent of a geom­e­try or edit it in a new sim­pler way with the Get Geometry Component node.

Closures can now be called re­cur­sively.

Display data-block name in Viewer Node.

Data-blocks sock­ets can now be com­pared to each other and to None.

Bone Info: New Exists” out­put.

CYCLES

Cached In

On scenes with many im­age tex­tures, the new Texture Cache sig­nif­i­cantly re­duces mem­ory us­age and startup time by au­to­mat­i­cally gen­er­at­ing smaller, op­ti­mized tex­ture files that load only the tiles and res­o­lu­tions needed for ren­der­ing.

Texture Cache Off

Texture Cache On

Attic

Attic

Bistro

Bistro

Junkshop

Junkshop

0

1000

2000

3000

4000

5000

6000

Memory us­age

Unit: MB

CYCLES

Easy Savings

One tog­gle, loads of mem­ory sav­ings.

Backport refreshed bundled model metadata to 0.144 by sayan-oai · Pull Request #33972 · openai/codex

github.com

Have a ques­tion about this pro­ject? Sign up for a free GitHub ac­count to open an is­sue and con­tact its main­tain­ers and the com­mu­nity.

Sign up for GitHub

By click­ing Sign up for GitHub”, you agree to our terms of ser­vice and pri­vacy state­ment. We’ll oc­ca­sion­ally send you ac­count re­lated emails.

Already on GitHub? Sign in to your ac­count

AI advice made people three times less accurate but twice as confident, researchers found

thenextweb.com

TL;DR

Researchers found AI ad­vice sup­pressed judg­ment sus­pen­sion from 44% to 3%, ac­cu­racy from 27% to 9%, while con­fi­dence rose from 30% to 76%. People trusted wrong AI an­swers.

Researchers from three French and Italian uni­ver­si­ties found that ac­cess to AI ad­vice col­lapsed peo­ple’s will­ing­ness to say I don’t know” from 44% to 3%. Accuracy dropped from 27% to 9%. Confidence, mean­while, rose from 30% to 76%. People be­came much worse, the ac­cu­racy was only one third, but they were twice as con­fi­dent,” said Valerio Capraro, as­so­ci­ate pro­fes­sor at the University of Milano-Bicocca.

The study, au­thored by Capraro with Chiara Marcoccia of École Normale Supérieure and Walter Quattrociocchi of Sapienza University of Rome, de­lib­er­ately used ques­tions where AI mod­els typ­i­cally fail: vi­sual de­tails from films, such as the colour of a team’s uni­form in Bend It Like Beckham. The re­searchers used Step 3.5 Flash, a model that was usu­ally wrong on these ques­tions, pre­cisely so any re­duc­tion in judg­ment could not be ex­plained as sen­si­ble del­e­ga­tion to a re­li­able tool. Some par­tic­i­pants who would have an­swered cor­rectly on their own asked the AI and be­came wrong.

Monetary in­cen­tives helped, but not much. Willingness to ad­mit ig­no­rance rose from 3% to 8% and ac­cu­racy from 9% to 16%, both still well be­low the no-AI base­lines of 44% and 27%. Wharton re­searchers coined the term cognitive sur­ren­der” ear­lier this year to de­scribe the same phe­nom­e­non: peo­ple ac­cept­ing in­cor­rect AI an­swers 80% of the time while re­port­ing higher con­fi­dence than those work­ing with­out AI. The new study adds a sharper data point. It is not just that peo­ple trust wrong AI an­swers. It is that the mere avail­abil­ity of AI sup­presses the cog­ni­tive habit of recog­nis­ing what you do not know.

The 💜 of EU tech

The lat­est rum­blings from the EU tech scene, a story from our wise ol’ founder Boris, and some ques­tion­able AI art. It’s free, every week, in your in­box. Sign up now!

For hu­mans, the ca­pac­ity to say I don’t know’ is very im­por­tant be­cause it rep­re­sents the recog­ni­tion of the lim­its of our own knowl­edge,” Capraro said. He is par­tic­u­larly con­cerned about chil­dren, who are grow­ing up with these sys­tems be­fore they have de­vel­oped crit­i­cal think­ing skills. Google’s AI search over­haul re­placed links with con­fi­dent AI-generated sum­maries, and Common Sense Media this week called that de­sign an unacceptable risk” for stu­dents. The pat­tern is con­sis­tent: AI prod­ucts are de­signed to an­swer, never to say I don’t know.” The hu­mans us­ing them are learn­ing to do the same.

Get the TNW newslet­ter

Get the most im­por­tant tech news in your in­box each week.

levent (@__alpoge__)

xcancel.com

@__alpoge__ Question to Fable: Using the one ex­am­ple proof, could you find an­other ex­am­ple that proves the ja­co­bian con­jec­ture is false? What would the process be to do so?

Yes — and I just did, live. There are two lev­els to this: a me­chan­i­cal way that spits out in­fi­nitely many new ex­am­ples, and the deeper process of un­der­stand­ing why the orig­i­nal works so you can build gen­uinely dif­fer­ent ones. I did the first and re­verse-en­gi­neered the sec­ond.

Level 1: dress the old ex­am­ple in cos­tumes. If F is a coun­terex­am­ple and G, H are any known poly­no­mial au­to­mor­phisms (invertible shuffles” of space, like (x,y,z) → (x+z², y, z)), then G∘F∘H is also a Keller map (Jacobian de­ter­mi­nants mul­ti­ply: 1·(−2)·1 = −2) and still non-in­jec­tive — the three col­lid­ing points just get re­lo­cated by H⁻¹. I built one above: it’s a mon­ster with com­po­nent de­grees 14, 20, and 7 that looks noth­ing like the orig­i­nal, has con­stant Jacobian −2, and sends (−1/16, 0, −1/4), (−165/4, −3/2, 13/2), (−173/4, 3/2, 13/2) all to (−1/4, −3/16, 0). Verified sym­bol­i­cally. Since there are in­fi­nitely many au­to­mor­phisms, this gives in­fi­nitely many coun­terex­am­ples — but math­e­mati­cians would call them equivalent”: the same ex­am­ple wear­ing dif­fer­ent clothes.

Level 2: re­verse-en­gi­neer the mech­a­nism. The tweet’s map hides a clean skele­ton. Writing u = 1+xy and W = u²z + y²·q(xy) with q(v) = 4+3v, the map is ex­actly (u·W, y + 3x·W, x(2−3xy−x²z)). If you then hunt for all preim­ages of a tar­get point (c, 0, 0), the whole sys­tem col­lapses to find­ing roots of one small poly­no­mial P(v) in v = xy — and the co­ef­fi­cients were tuned so P(v) = 2 + (4/3)v, giv­ing v = −3/2, which forces x² = −1/(4c) and hands you the mir­ror-im­age pair (±1, ∓3/2, 13/2); the point with x = 0 comes along for free. So col­li­sions are au­to­matic by de­sign — roots of poly­no­mi­als al­ways ex­ist over ℂ. The en­tire 87-year dif­fi­culty was the other con­straint: mak­ing the Jacobian de­ter­mi­nant ex­actly con­stant. The dis­cov­ery process is there­fore: pick a struc­tured ansatz where non-in­jec­tiv­ity is built in, write det ≡ con­stant” as a sys­tem of equa­tions on the co­ef­fi­cients, and solve — a search that’s bru­tally te­dious for hu­mans and very nat­ural for AI plus com­puter al­ge­bra.

How rigid is it? My sec­ond ex­per­i­ment: re­plac­ing q = 4+3v with a gen­eral q = t+sv and de­mand­ing con­stant de­ter­mi­nant forces ex­actly t = 4, s = 3 — no wig­gle room in that di­rec­tion. So gen­uinely new ex­am­ples re­quire chang­ing the skele­ton it­self: dif­fer­ent build­ing blocks than (x, 1+xy), higher-de­gree q to get maps that are 4-to-1 or more, analogs in di­men­sion 4+ be­yond mere padding. And there’s one guar­an­teed fac­tory: a clas­si­cal re­duc­tion the­o­rem (Bass–Connell–Wright/Drużkowski) con­struc­tively con­verts any coun­terex­am­ple into one of the ul­tra-sim­ple form x + (linear)³ in some higher di­men­sion — crank­ing this ex­am­ple through that ma­chine is now a con­crete, purely me­chan­i­cal pro­ject that must suc­ceed.

1

1

4

2,206

Minecraft 26.3 Snapshot 4

www.minecraft.net

Happy Snapshot Tues… Thursday? Yes, you read that right! As we’ve en­tered peak va­ca­tion sea­son here in Sweden, snap­shots might not come out on their usual sched­ule.

In to­day’s snap­shot we have switched the li­brary used for win­dow man­age­ment, in­put and plat­form in­te­gra­tion from GLFW to SDL3.

We have also added new item com­po­nents for cus­tom fur­nace fu­els, as well as sev­eral tech­ni­cal changes for signs, world gen­er­a­tion and loot ta­bles.

Happy min­ing!

Known Issues

Exclusive fullscreen mode on Windows may cause the game to crash in cer­tain sit­u­a­tions, es­pe­cially when us­ing mul­ti­ple mon­i­tors

Entering Exclusive fullscreen mode crashes the game on Wayland

New Features

Players in spec­ta­tor mode can now in­ter­act with por­tals to tele­port

Changes

Minor Tweaks to Blocks, Items and Entities

Armadillos no longer try to roll up when sub­merged in liq­uids

UI

Removed the Raw Input mouse set­ting­Mouse in­put now al­ways uses rel­a­tive mouse mode while play­ing in-game

Mouse in­put now al­ways uses rel­a­tive mouse mode while play­ing in-game

Key bind­ings now use phys­i­cal keys in­stead of key­board-lay­out-spe­cific key codes

Borderless Fullscreen is now the de­fault fullscreen mode

Switching be­tween Borderless and Exclusive Fullscreen no longer re­quires restart­ing the game

Exclusive fullscreen mode on ma­cOS is no longer sup­ported

The min­i­mum win­dow size is now 320 by 240 pix­els

On ma­cOS, hold­ing a key while en­ter­ing text now dis­plays the na­tive ac­cent and can­di­date popup

On Linux sys­tems, the game will now use and pre­fer Wayland na­tively if avail­able

Debug Overlay

The de­bug over­lay now sup­ports a sep­a­rate GUI scale than the rest of the ga­me­This is cus­tomiz­able through the Debug Options screen, F3 + F6The de­fault scale is Auto”, which tries to stay at a higher res­o­lu­tion than nor­malAn­other op­tion is Unchanged”, which matches your reg­u­lar GUI scaleThe rest of the op­tions work the same as in the nor­mal GUI Scale”, con­trol­ling the scale di­rectly

This is cus­tomiz­able through the Debug Options screen, F3 + F6

The de­fault scale is Auto”, which tries to stay at a higher res­o­lu­tion than nor­mal

Another op­tion is Unchanged”, which matches your reg­u­lar GUI scale

The rest of the op­tions work the same as in the nor­mal GUI Scale”, con­trol­ling the scale di­rectly

Added a player_speed” de­bug en­try that dis­plays the speed of the player in blocks per tick.

The de­bug over­lay now shows the dis­play re­fresh rate

Creative Inventory

Reordered min­eral item and block or­der­ing to have non-tiered in­gre­di­ents up first, then tiered in­gre­di­ents that craft into equip­ment last­In­gre­di­entsNon-tiered min­er­al­sUn­re­fined tiered min­er­al­sRe­fined tiered min­er­al­sNuggetsIn­gots

Building BlocksNon-tiered min­eral blocks and vari­antsRe­fined tiered min­eral blocks and vari­antsCop­per block fam­ily Copper Blocks con­tinue to be pushed to the end of the or­der in Building Blocks since they have a large list of con­tent

IngredientsNon-tiered min­er­al­sUn­re­fined tiered min­er­al­sRe­fined tiered min­er­al­sNuggetsIn­gots

Non-tiered min­er­als

Unrefined tiered min­er­als

Refined tiered min­er­al­sNuggetsIn­gots

Nuggets

Ingots

Building BlocksNon-tiered min­eral blocks and vari­antsRe­fined tiered min­eral blocks and vari­antsCop­per block fam­ily

Non-tiered min­eral blocks and vari­ants

Refined tiered min­eral blocks and vari­ants

Copper block fam­ily

Copper Blocks con­tinue to be pushed to the end of the or­der in Building Blocks since they have a large list of con­tent

Improved or­der­ing of Natural Blocks tab so that all in­ner or­der­ing of group con­tent se­quen­tially pro­gresses from Overworld -> Nether -> End to stay con­sis­tent with other tabs

Technical Changes

The Data Pack ver­sion is now 111.0

The Resource Pack ver­sion is now 92.0

Loot table types that have a ded­i­cated reg­istry now sup­port reg­istry el­e­ment and tag ref­er­ences­This means that the ma­jor­ity of fields of such types that pre­vi­ously ac­cepted sin­gle el­e­ments will now ac­cept ei­ther a name­spaced ID or an in­line value, while fields that pre­vi­ously ac­cepted lists can now ac­cept an in­line value, a sin­gle name­spaced ID, a list of name­spaced IDs, a list of in­line val­ues, or a hash-pre­fixed tag IDAffected types:minecraft:ad­vance­ment­minecraft:item_­mod­i­fier­minecraft:loot_tablem­inecraft:num­ber_provi­der­minecraft:pred­i­catem­inecraft:recipem­inecraft:slot_­source Existing ref­er­ence types for pred­i­cates, item mod­i­fiers and slot sources are now ob­so­lete and have been re­moved

This means that the ma­jor­ity of fields of such types that pre­vi­ously ac­cepted sin­gle el­e­ments will now ac­cept ei­ther a name­spaced ID or an in­line value, while fields that pre­vi­ously ac­cepted lists can now ac­cept an in­line value, a sin­gle name­spaced ID, a list of name­spaced IDs, a list of in­line val­ues, or a hash-pre­fixed tag ID

Affected types:minecraft:ad­vance­ment­minecraft:item_­mod­i­fier­minecraft:loot_tablem­inecraft:num­ber_provi­der­minecraft:pred­i­catem­inecraft:recipem­inecraft:slot_­source

minecraft:ad­vance­ment

minecraft:item_­mod­i­fier

minecraft:loot_table

minecraft:num­ber_provider

minecraft:pred­i­cate

minecraft:recipe

minecraft:slot_­source

Existing ref­er­ence types for pred­i­cates, item mod­i­fiers and slot sources are now ob­so­lete and have been re­moved

Windowing and Input Backend

Minecraft now uses SDL3 in­stead of GLFW for win­dow man­age­ment, in­put and plat­form in­te­gra­tion

Keyboard in­put now uses SDL scan­codes for phys­i­cal key po­si­tions and SDL key­codes for lay­out-de­pen­dent text edit­ing short­cuts

Data Pack Version 111.0

Signs no longer au­to­mat­i­cally ex­e­cute click events in cus­tom text

Commands

Changes to spread­play­ers

Whether a block is safe to spread a player to is now con­trolled by the #entities_can_teleport_to block tag

Environment Attributes

Added minecraft:game­play/​nat­ur­al_­mob_s­pawns

Defines mob spawns in an Environment Attribute Source

During world­gen place­ment, only Dimensions and Biomes will ap­ply this Environment Attribute

Format: ob­ject with fields:spawn­s_­by_­cat­e­gory - map of spawn cat­e­gory to weighted list of spawn dataS­pawn data for­mat: ob­ject with fields:type - en­tity type, the en­tity to spawn­count - int provider, amount to spawn

spawn_­costs - map of en­tity type to ob­ject with fields:en­er­gy_bud­get - float, en­ergy change al­lowed per spawn­charge - float, how much ex­ist­ing mobs will at­tract or re­pulse other charged mobs

spawn­s_­by_­cat­e­gory - map of spawn cat­e­gory to weighted list of spawn dataS­pawn data for­mat: ob­ject with fields:type - en­tity type, the en­tity to spawn­count - int provider, amount to spawn

Spawn data for­mat: ob­ject with fields:type - en­tity type, the en­tity to spawn­count - int provider, amount to spawn

type - en­tity type, the en­tity to spawn

count - int provider, amount to spawn

spawn_­costs - map of en­tity type to ob­ject with fields:en­er­gy_bud­get - float, en­ergy change al­lowed per spawn­charge - float, how much ex­ist­ing mobs will at­tract or re­pulse other charged mobs

en­er­gy_bud­get - float, en­ergy change al­lowed per spawn

charge - float, how much ex­ist­ing mobs will at­tract or re­pulse other charged mobs

Available at­tribute mod­i­fiers:over­lay­For each mob cat­e­gory, over­rides the lower lay­er’s spawn set­tings with the higher lay­er’s, un­less the cat­e­gory is not in­clud­ed­Merges each lay­er’s spawn costs to­gether, over­rid­ing the lower lay­er’s spawn costs with the higher lay­er’s if both de­fine the same en­tity type

over­lay­For each mob cat­e­gory, over­rides the lower lay­er’s spawn set­tings with the higher lay­er’s, un­less the cat­e­gory is not in­clud­ed­Merges each lay­er’s spawn costs to­gether, over­rid­ing the lower lay­er’s spawn costs with the higher lay­er’s if both de­fine the same en­tity type

For each mob cat­e­gory, over­rides the lower lay­er’s spawn set­tings with the higher lay­er’s, un­less the cat­e­gory is not in­cluded

Merges each lay­er’s spawn costs to­gether, over­rid­ing the lower lay­er’s spawn costs with the higher lay­er’s if both de­fine the same en­tity type

Default: Empty

Added minecraft:game­play/​crea­ture_­world_­gen_s­pawn_prob­a­bil­ity

Sets the prob­a­bil­ity to run an it­er­a­tion in which mobs de­fined to spawn in the crea­ture mob cat­e­gory will spawn dur­ing world gen­er­a­tion

Only Dimensions and Biomes will ap­ply this Environment Attribute

Format: float with range [0,1)

Default: 0.1

Changed minecraft:vi­sual/​am­bi­en­t_­par­ti­cles

Now sup­ports in­ter­po­la­tion be­tween Timeline keyframes (probabilities will be cross­faded)

Introduced sup­port for new mod­i­fier: ap­pen­dUn­like over­ride which to­tally re­places the par­ti­cle list, this mod­i­fier con­cate­nates all el­e­ments with the lay­ers be­low

Unlike over­ride which to­tally re­places the par­ti­cle list, this mod­i­fier con­cate­nates all el­e­ments with the lay­ers be­low

Data Components

Added minecraft:cook­ing_­fuel

Describes an item that can be used as fuel for a Furnace, Smoker or Blast Furnace

Format: ob­ject with fields­burn_­time - name­spaced ID point­ing to an el­e­ment of minecraft:num­ber_provider reg­istry rep­re­sent­ing the time, in ticks, for which this fuel will burn­speed_­mul­ti­plier - name­spaced ID point­ing to an el­e­ment of minecraft:num­ber_provider reg­istry rep­re­sent­ing the speed of the cook­ing/​smelt­ing

burn_­time - name­spaced ID point­ing to an el­e­ment of minecraft:num­ber_provider reg­istry rep­re­sent­ing the time, in ticks, for which this fuel will burn

speed_­mul­ti­plier - name­spaced ID point­ing to an el­e­ment of minecraft:num­ber_provider reg­istry rep­re­sent­ing the speed of the cook­ing/​smelt­ing

Token Plan | QwenCloud

www.qwencloud.com

Token Plan Upgraded

Individual is now avail­able, and Team is more af­ford­able. Get ad­vanced mod­els like Qwen3.8-Max-Preview for less—and start build­ing with AI to­day.To­ken Plan

Multiple Models, One Plan

One plan of­fers uni­fied ac­cess to lead­ing text, vi­sion, speech, and im­age gen­er­a­tion mod­els.

Seamless AI Toolchain Integration

Higher Quota, Better Price

Multiple Models, One Plan

One plan of­fers uni­fied ac­cess to lead­ing text, vi­sion, speech, and im­age gen­er­a­tion mod­els.

Seamless AI Toolchain Integration

Higher Quota, Better Price

Token Plan Special Offer

Token Plan of­fers Individual and Team Plans — choose the one that fits your needs.Learn more

Lite Plan

/month

Access mul­ti­ple mod­elsModel List

Accessharness tools

Run 1 – 2 agents con­cur­rently

Standard Plan

Hot

/month

4x the cred­its of Lite Plan

Everything in Lite Plan

Run 3 – 4 agents con­cur­rently

Pro Plan

/month

16x the cred­its of Lite Plan

Everything in Standard Plan

Run 6 – 8 agents con­cur­rently

Supported AI Tools

Token Plan works with main­stream tools that sup­port OpenAI and Anthropic pro­to­col­sLearn More

Frequently Asked Questions

How do I use the Token Plan Individual?

After sub­scrib­ing to Token Plan Individual, fol­low these steps:

• Subscribe: Buy Token Plan on this page. • Get your cre­den­tials: Go to the 「API Keys」page to get your base URL and API key. • Configure and use: Enter the base URL and API key in any sup­ported AI tool to com­plete setup. (Note: For tool-spe­cific setup in­struc­tions, see the in­te­gra­tion guide.)

Can I sub­scribe to mul­ti­ple Token Plan Individual plans at once?

Does Token Plan Individual sup­port re­funds?

How do I check my Token Plan us­age?

The Last MPEG-4 Visual Patent Has Expired

www.phoronix.com

If you are look­ing for a rea­son to cel­e­brate to­day, the last of the MPEG-4 Part 2 patents ex­pired to­day.

While the US and EU patents around MPEG-4 Part 2 ex­pired in re­cent years, un­til to­day there re­mained one patent still ac­tive in Brazil. This fi­nal patent was BRPI0109962B1 - process for stor­ing and pro­cess­ing im­age in­for­ma­tion from suc­ces­sive im­ages over time”.

The VIA Licensing Alliance con­firmed that this was the fi­nal MPEG-4 Visual patent and in­deed ex­pir­ing to­day, 19 July 2026.

Great to see this day fi­nally re­al­ized given the preva­lence of MPEG-4.

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.