IS
Barcha tajribalar
jarayonda

Orbit Sandbox — brauzerdagi o‘yinchoq gravitatsiya

Jismlarni tashlang, ularga tezlik bering va n-body gravitatsiyasi ularni orbitalar, sopqon manyovrlari va to‘qnashuvlarga tortishini kuzating. Universe Sandbox’ga kichik ta’zim.

laboratoriya yozuvi
Nega qildim

Universe Sandbox — mening «shinam» dasturim. «Koinotni turtib ko‘rish» zavqining qanchasi naiv gravitatsiyali 200 qatorlik canvas-o‘yinchog‘ida saqlanib qolishini his qilmoqchi edim.

Nimani o'rgandim

Naiv O(n²) gravitatsiya bir necha yuz jismgacha 60fpsda bemalol ishlaydi. Bu yerdagi qiyin narsa fizika emas, balki barqaror integrator: oddiy Eyler portlaydi, yarim-oshkormas Eyler esa xotirjam qoladi.

Qayerda sindi

Oddiy Eylerda ikkita yaqin jism cheksiz energiya to‘playdi va ekrandan uchib chiqadi. Masofani yumshatish (r hech qachon nolga tushmasligi uchun epsilon) va yarim-oshkormas integratsiya bu «otashinni» o‘chirdi.

Stek
Canvas 2DTypeScriptrequestAnimationFrame

Koinotni turtib ko‘r

Bo‘sh joyga bosish — jism tashlash. Bosib-sudrash — uni tezlik bilan otish. Hamma narsa hamma narsani tortadi, shu bois kichik to‘plamlar orbitaga tushadi, yonidan o‘tib ketishlar esa sopqon manyovriga aylanadi.

jonli demo
Demo yuklanmoqda…

Bu tajriba ataylab wip deb belgilangan: integrator barqaror, lekin to‘qnashuvda jismlarning birlashuvi hali yo‘q, keyingi qadamda esa massani-sudrash-radiusiga bog‘lashni qo‘shmoqchiman. Laboratoriya yozuvining mohiyati ham shu — choklarni yashirmasdan ko‘rsatish.