Podcast ā€œITMO Research_ā€: kā tuvoties AR satura sinhronizÄ“Å”anai ar izrādi visa stadiona mērogā

Å Ä« ir mÅ«su programmas otrās intervijas teksta atÅ”ifrējuma pirmā daļa (Apple Podcasts, Yandex.MÅ«zika). Problēma viesis - Andrejs Karsakovs (kapc3d), Ph.D., Nacionālā kognitÄ«vās attÄ«stÄ«bas centra vecākais pētnieks, Digitālo transformāciju fakultātes asociētais profesors.

KopÅ” 2012. gada Andrejs strādā pētnieku grupā Vizualizācija un datorgrafika. IesaistÄ«jies lielos lietiŔķos projektos valsts un starptautiskā lÄ«menÄ«. Å ajā sarunas daļā runājam par viņa pieredzi AR atbalstÄ«Å”anā publiskiem pasākumiem.

Podcast ā€œITMO Research_ā€: kā tuvoties AR satura sinhronizÄ“Å”anai ar izrādi visa stadiona mērogā
foto Šī ir maŔīnbūves RAEng (Unsplash.com)

Projekta konteksts un mērķi

Laika kods (pēc audio versijas) ā€” 00:41

Dmitrijs Kabanovs: Es vēlētos sākt ar Eiropas spēļu projektu. Tas ir daudzkomponents, sagatavoÅ”anā piedalÄ«jās vairākas komandas, un paplaÅ”inātās realitātes nodroÅ”ināŔana tÅ«kstoÅ”iem cilvēku lielai auditorijai tieÅ”i pasākuma laikā stadionā ir diezgan nopietns uzdevums. Runājot par jÅ«su iesaistÄ«Å”anos, vai vispirms tā bija programmatÅ«ra?

kapc3d: Jā, mēs veicām programmÄ“Å”anas daļu un sniedzām atbalstu izrādes laikā. Bija nepiecieÅ”ams visu izsekot, uzraudzÄ«t un palaist reāllaikā, kā arÄ« strādāt ar televÄ«zijas grupu. Ja skatāmies uz Å”o projektu kopumā, tad varam runāt par atklāŔanas un noslēguma ceremonijām Eiropas spēles Minskā, kā arÄ« par čempionāta atklāŔanas ceremoniju WorldSkills Kazaņā. Tā bija viena un tā pati darba shēma, bet dažādi notikumi. Starp viņiem bija divu mēneÅ”u pārtraukums. Projektu sagatavojām kopā ar uzņēmuma puiÅ”iem Sechenov.com.

Mēs viņus satikām nejauÅ”i Zinātnes festivāls, kas notika 2018. gada rudenÄ«. MÅ«su maÄ£istranti prezentēja savu kursa projektu par VR tēmu. PuiÅ”i pienāca pie mums un jautāja, ko mēs darām savā laboratorijā. Tas izskatÄ«jās apmēram Ŕādi:

ā€” JÅ«s strādājat ar VR, bet vai varat strādāt ar paplaÅ”ināto realitāti?

- Nu, kaut kā, jā.

ā€“ Ir tāds uzdevums, ar tādām ievada piezÄ«mēm. Vai vari to izdarÄ«t?

Viņi nedaudz saskrāpēja rāceņus, neŔķiet, ka nekas nereāls:

- Mēģināsim vispirms visu izpētīt un tad atrast risinājumu.

Dmitrijs: Vai viņi sniedz tikai mediju atbalstu?

EndrjÅ«: Viņi veido pilnu kaudzi. No menedžmenta un organizācijas viedokļa viņi ir pilnÄ«bā iesaistÄ«ti režijā, iestudÄ“Å”anā, dekorāciju izvēlē, loÄ£istikā un citā tehniskajā nodroÅ”ināŔanā. Bet viņi gribēja izdarÄ«t kaut ko Ä«paÅ”u Eiropas spēlēm. Å ie specefekti, tāpat kā jauktā realitāte, televÄ«zijai ir veidoti jau diezgan sen, taču tie nav tie budžetā draudzÄ«gākie tehniskās realizācijas ziņā. Tāpēc puiÅ”i meklēja alternatÄ«vas iespējas.

Dmitrijs: Apspriedīsim problēmu sīkāk. No kā tas sastāvēja?

EndrjÅ«: Ir notikums. Tas ilgst pusotru stundu. Mums ir jāpārliecinās, ka skatÄ«tāji, kas to skatās tieÅ”raidē, un tie, kas sēž stadionā, var redzēt paplaÅ”inātās realitātes efektus pilnā sinhronizācijā ar tieÅ”raidi laika un vietas ziņā vietnē.

Bija vairāki tehniski ierobežojumi. Laika sinhronizāciju ar interneta starpniecību veikt nebija iespējams, jo pastāvēja bažas par pārlieku noslogotību tīklā ar pilnām tribīnēm un iespējamību, ka pasākumu apmeklēs valsts vadītāji, kas varētu traucēt mobilo sakaru tīklus.

Andrejs Karsakovs, foto no materiāls no ITMO universitātes
Podcast ā€œITMO Research_ā€: kā tuvoties AR satura sinhronizÄ“Å”anai ar izrādi visa stadiona mērogāMums bija divi Ŕī projekta galvenie komponenti - personÄ«gā pieredze, ko cilvēki var iegÅ«t, izmantojot mobilās ierÄ«ces, un tas, kas tiek iekļauts televÄ«zijas pārraidēs un informācijas ekrānos paŔā stadionā.

Ja pēkŔņi cilvēks skatās paplaÅ”inātās realitātes epizodes, izmantojot mobilo ierÄ«ci un tajā paŔā laikā nokļūst ekrānā, viņam vajadzētu redzēt to paÅ”u attēlu.

Mums vajadzēja divas praktiski atŔķirÄ«gas sistēmas, lai tās bÅ«tu pilnÄ«bā sinhronizētas laikā. Bet Ŕādu raidÄ«jumu Ä«patnÄ«ba ir tāda, ka tie ir sarežģīti pasākumi, kuros iesaistÄ«ts liels skaits tehnisko dienestu un visas darbÄ«bas tiek veiktas pēc laika kodiem. Laika kods ir konkrēts brÄ«dis laikā, kurā kaut kas sākas: gaisma, skaņa, cilvēki aiziet, skatuves ziedlapiņas atveras utt. Mums bija jāpielāgojas Å”ai sistēmai, lai viss sāktos Ä«stajā laikā. Vēl viena iezÄ«me bija tāda, ka ainas un epizodes ar paplaÅ”ināto realitāti bija saistÄ«tas ar scenāriju.

Dmitrijs: Bet vai jÅ«s nolēmāt atteikties no laika kodu izmantoÅ”anas, jo pastāv liels nepārvaramas varas risks, vai arÄ« sākotnēji aprēķinājāt dažus jaudas raksturlielumus un sapratāt, ka slodze uz visu sistēmu bÅ«s diezgan liela?

EndrjÅ«: Ja izveidojat sinhronizācijas pakalpojumu Ŕādai auditorijai, tas nav Ä«paÅ”i grÅ«ti. Jebkurā gadÄ«jumā pieprasÄ«jumi neizdosies vienas nakts laikā. Jā, slodze ir liela, taču tā nav ārkārtas situācija. Jautājums ir par to, vai ir vērts tam tērēt resursus un laiku, ja tÄ«kls pēkŔņi pazÅ«d. Mēs nebijām pārliecināti, ka tas nenotiks. Galu galā viss strādāja, ar pārtraukumiem slodzes dēļ, bet tas darbojās, un mēs sinhronizējāmies pēc laika koda pēc citas shēmas. Tas bija viens no globālajiem izaicinājumiem.

ÄŖstenoÅ”anas grÅ«tÄ«bas no UX viedokļa

Laika kods (pēc audio versijas) ā€” 10:42

Endrjū: Mums bija arī jāņem vērā, ka stadions nav klasiska koncertu norises vieta, un sinhronizēt sistēmas mobilajām ierīcēm paredzētajā telpā. Tātad, pirms kāda laika es kļuva par vīrusu papildinātās realitātes stāsts Eminema koncertos, tad bija gadījums ar Lobodu.

foto Roberts Bye (Unsplash.com)
Podcast ā€œITMO Research_ā€: kā tuvoties AR satura sinhronizÄ“Å”anai ar izrādi visa stadiona mērogāBet Ŕī vienmēr ir pieredze jÅ«su priekŔā - viss pÅ«lis stāv priekŔā skatuves, sinhronizācija ir diezgan vienkārÅ”a. Stadiona gadÄ«jumā ir jāsaprot, kurā apļa pusē atrodaties, relatÄ«vā pozÄ«cija, lai stadions iekļautos telpā, kas pastāv virtuālajā vidē. Tas bija smags izaicinājums. Viņi mēģināja to risināt dažādos veidos, un rezultāts bija gadÄ«jums, kas ir tuvu tam, ko Ä«stenoja Loboda, bet ne visos aspektos.

Mēs ļaujam lietotājam izlemt, kur viņŔ atrodas. UztaisÄ«jām stadionam marķējumus, kur cilvēki izvēlējās sektoru, rindu, vietu. Tas viss ar četriem ā€œklikŔķiemā€. Tālāk bija jānosaka virziens uz skatuvi. Lai to izdarÄ«tu, mēs parādÄ«jām siluetu, kādai ainai vajadzētu aptuveni izskatÄ«ties no pielāgotas perspektÄ«vas. ViņŔ to apvienoja, piesita un viss - skatuve apsēdās. Mēs centāmies Å”o procesu pēc iespējas vienkārÅ”ot. Tomēr 90% skatÄ«tāju, kas vēlējās skatÄ«ties Å”ovu, nav tie cilvēki, kuriem ir pieredze saziņā ar paplaÅ”ināto realitāti.

Dmitrijs: Vai Ŕim projektam bija atseviŔķs pieteikums?

EndrjÅ«: Jā, aplikācija iOS un Android, kuru iestÅ«mām veikalā. Tam bija atseviŔķa reklāmas kampaņa. IepriekÅ” tika detalizēti aprakstÄ«ts, kā lejupielādēt un tā tālāk.

Dmitrijs: Jāsaprot, ka cilvēkam nav kur fiziski pārbaudÄ«t un iemācÄ«ties lietot Ŕādu aplikāciju. LÄ«dz ar to auditorijas ā€œizglÄ«toÅ”anasā€ uzdevums kļuva sarežģītāks.

EndrjÅ«: Jā jā. Izmantojot UX, mēs piedzÄ«vojām daudz nelÄ«dzenumu, jo lietotājs vēlas iegÅ«t pieredzi trÄ«s klikŔķos: lejupielādēts, instalēts, palaists ā€” tas strādāja. Daudzi cilvēki ir pārāk slinki, lai sekotu sarežģītām pamācÄ«bām, lasÄ«tu pamācÄ«bas utt. Un apmācÄ«bā mēs necentāmies lietotājam visu izskaidrot, cik vien iespējams: Å”eit tiks atvērts logs, Å”eit bÅ«s piekļuve kamerai, pretējā gadÄ«jumā tas nedarbosies un tā tālāk. NeatkarÄ«gi no tā, cik paskaidrojumus jÅ«s rakstāt, neatkarÄ«gi no tā, cik detalizēti jÅ«s to sakoŔļājat, neatkarÄ«gi no tā, kādus gifus ievietojat, cilvēki to neizlasa.

Minskā mēs apkopojām lielu atsauksmju kopumu par Å”o daļu, un jau esam daudz mainÄ«juÅ”i lietojumprogrammu Kazaņā. Mēs tur ievietojām ne tikai tās fonogrammas un laika kodus, kas atbilst konkrētai paplaÅ”inātās realitātes epizodei, bet paņēmām visas fonogrammas un laika kodus kopumā. Tātad lietojumprogramma dzirdēja, kas notiek palaiÅ”anas brÄ«dÄ«, un, ja persona pieteicās nepareizā brÄ«dÄ«, tā sniedza informāciju: "Biedri, atvainojiet, jÅ«su AR sērija bÅ«s pēc 15 minÅ«tēm."

Mazliet par arhitektūru un pieeju sinhronizācijai

Laika kods (pēc audio versijas) ā€” 16:37

Dmitrijs: Vai nolēmāt sinhronizēt pēc skaņas?

EndrjÅ«: Jā, tas notika nejauÅ”i. Mēs izskatÄ«jām iespējas un sastapāmies ar uzņēmumu Cifrasoft no Iževskas. Tie veido ne Ä«paÅ”i izsmalcinātu, bet gludu SDK, kas ļauj sinhronizēt skaņu ar laiku. Sistēma tika pozicionēta darbam ar TV, kad varat kaut ko parādÄ«t aplikācijā, pamatojoties uz nosacÄ«tas reklāmas skaņu vai sniegt interaktÄ«vu pieredzi, pamatojoties uz filmas celiņu.

Dmitrijs: Bet tā ir viena lieta ā€“ tu sēdi savā viesistabā, un cita lieta ā€“ stadions ar tÅ«kstoÅ”iem cilvēku. Kā jums veicās ar skaņu ieraksta kvalitāti un tā sekojoÅ”o atpazÄ«stamÄ«bu?

EndrjÅ«: Bija daudz baiļu un Å”aubu, bet vairumā gadÄ«jumu viss tika atzÄ«ts labi. Viņi veido parakstus uz audio celiņa ar saviem viltÄ«gajiem algoritmiem - rezultāts sver mazāk nekā oriÄ£inālais audio fails. Kad mikrofons klausās apkārtējo skaņu, tas mēģina atrast Ŕīs funkcijas un atpazÄ«t ierakstu, pamatojoties uz tiem. Labos apstākļos sinhronizācijas precizitāte ir 0,1-0,2 sekundes. Tas bija vairāk nekā pietiekami. Sliktos apstākļos neatbilstÄ«ba bija lÄ«dz 0,5 sekundēm.

Daudz kas ir atkarīgs no ierīces. Mēs strādājām ar lielu ierīču parku. iPhone tālruņiem ir tikai 10 modeļi. Viņi strādāja labi kvalitātes un citu funkciju ziņā. Bet ar androīdiem zoodārzs ir kā mana māte. Ne visur izrādījās, ka skaņas sinhronizācija darbojas. Bija gadījumi, kad dažu īpatnību dēļ nebija iespējams dzirdēt dažādus ierakstus dažādās ierīcēs. Kaut kur pazūd zemās frekvences, kaut kur sāk svilpt augstās frekvences. Bet, ja ierīcei mikrofonā bija normalizētājs, sinhronizācija vienmēr darbojās.

Dmitrijs: Pastāstiet, lÅ«dzu, par arhitektÅ«ru ā€“ kas tika izmantots projektā?

EndrjÅ«: Mēs izveidojām lietojumprogrammu Unity ā€” vienkārŔākā iespēja vairāku platformu un darba ar grafiku ziņā. Lietots AR fonds. Mēs uzreiz teicām, ka nevēlamies sarežģīt sistēmu, tāpēc aprobežojāmies ar ierīču parku, kas atbalsta ARKit un ARCore, lai bÅ«tu laiks visu pārbaudÄ«t. Mēs izveidojām spraudni DigitalSoft SDK atrodas mÅ«su GitHub. Mēs izveidojām satura pārvaldÄ«bas sistēmu, lai skripti darbotos atbilstoÅ”i laika grafikam.

Mēs nedaudz pastrādājām ar daļiņu sistēmu, jo lietotājs var jebkurā laikā iekļūt konkrētā epizodē, un mums ir nepiecieÅ”ams, lai viņŔ redzētu visu no brīža, kad viņŔ sinhronizēja. Mēs izstrādājām sistēmu, kas ļauj skaidri un laikā izspēlēt scenārijus, lai XNUMXD pieredzi varētu ritināt uz priekÅ”u un atpakaļ, kā filmā. Lai gan tas darbojas no kastes ar klasiskajām animācijām, mums bija jāstrādā ar daļiņu sistēmām. Kādā brÄ«dÄ« tie sāk nārstot, un, ja atrodaties kaut kur pirms nārsta punkta, tie vēl nav dzimuÅ”i, lai gan Ŕķiet, ka tam vajadzētu bÅ«t. Bet patiesÄ«bā Å”o problēmu ir diezgan viegli atrisināt.

Mobilajai daļai arhitektÅ«ra ir diezgan vienkārÅ”a. TelevÄ«zijas apraidei viss ir sarežģītāk. Mums bija aparatÅ«ras ierobežojumi. PasÅ«tÄ«tājs izvirzÄ«ja nosacÄ«jumu: "Å eit mums ir tāds un tāds datortehnikas parks, rupji sakot, visam ir jāstrādā." Mēs uzreiz koncentrējāmies uz to, ka mēs strādāsim ar salÄ«dzinoÅ”i budžeta video uzņemÅ”anas kartēm. Taču budžets nenozÄ«mē, ka tie ir slikti.

Bija ierobežojumi aparatÅ«rai, video uzņemÅ”anas kartēm un darba apstākļiem - kā mums vajadzētu uztvert attēlu. UzņemÅ”anas kartÄ«tes - Blackmagic Design, darbojās pēc iekŔējās atslēgas shēmas - tas ir tad, kad no kameras pie jums atnāk video kadrs. Kartei ir sava apstrādes mikroshēma, kurā ir ievietots arÄ« rāmis, kas jāuzliek virsÅ« ienākoÅ”ajam. Karte tos sajauc - mēs tur nepieskaramies nekam citam un neietekmējam videokameras kadru. Viņa izspļauj rezultātu uz vadÄ«bas telpu, izmantojot video izvadi. Å Ä« ir laba metode nosaukumu un citu lÄ«dzÄ«gu lietu pārklāŔanai, taču tā nav Ä«paÅ”i piemērota jauktas realitātes efektiem, jo ā€‹ā€‹renderÄ“Å”anas konveijeram ir daudz ierobežojumu.

Dmitrijs: Runājot par reāllaika skaitļoŔanu, objektu saistīŔanu vai kaut ko citu?

EndrjÅ«: Kvalitātes ziņā un vēlamo efektu sasniegÅ”anā. Jo mēs nezinām, uz ko mēs liekam attēlu. Mēs vienkārÅ”i nosÅ«tām informāciju par krāsu un caurspÄ«dÄ«gumu virs sākotnējās straumes. Ar Å”o shēmu nevar sasniegt dažus efektus, piemēram, refrakciju, pareizu caurspÄ«dÄ«gumu un papildu ēnas. Lai to izdarÄ«tu, viss ir jāatveido kopā. Piemēram, nav iespējams radÄ«t gaisa deformācijas efektu no uguns vai karsta asfalta. Tas pats attiecas uz caurspÄ«dÄ«guma efekta pārneÅ”anu, ņemot vērā lauÅ”anas koeficientu. Mēs sākotnēji veidojām saturu, pamatojoties uz Å”iem ierobežojumiem, un mēģinājām izmantot atbilstoÅ”us efektus.

SkatÄ«t Å”o ziņu pakalpojumā Instagram

II Eiropas spēļu noslēgums Minskā.

KopÄ«gota ziņa Alena Lanskaja (@alyonalanskaya) 30. gada 2019. jÅ«nijā, plkst. 3:19 PDT

Dmitrijs: Vai jums jau bija savs saturs pirmajā Eiropas spēļu projektā?

EndrjÅ«: Nē, galveno satura izstrādes posmu veica Sechenov.com puiÅ”i. Viņu grafiÄ·i zÄ«mēja pamata saturu ar animācijām un citām lietām. Un mēs visu integrējām dzinējā, pievienojām papildu efektus, pielāgojām to, lai viss darbotos pareizi.

Ja mēs runājam par cauruļvadu, tad televÄ«zijas apraidei mēs visu samontējām Unreal Engine 4. NejauÅ”i viņi tieÅ”i tajā brÄ«dÄ« sāka uzlabot savus rÄ«kus jauktajai realitātei. IzrādÄ«jās, ka viss nav tik vienkārÅ”i. Pat tagad visi instrumenti ir neapstrādāti, mums bija daudz jāpabeidz ar rokām. Minskā mēs strādājām pie pielāgotas dzinēja uzbÅ«ves, tas ir, mēs pārrakstÄ«jām dažas lietas dzinēja iekÅ”pusē, lai, piemēram, varētu uzzÄ«mēt ēnas uz reāliem objektiem. TobrÄ«d aktuālajai dzinēja versijai nebija funkciju, kas ļautu to izdarÄ«t, izmantojot standarta rÄ«kus. Å Ä« iemesla dēļ mÅ«su puiÅ”i izveidoja paÅ”i savu montāžu, lai nodroÅ”inātu visu, kas bija vitāli nepiecieÅ”ams.

Citas nianses un pielāgoÅ”anās WorldSkills Kazaņā

Laika kods (pēc audio versijas) ā€” 31:37

Dmitrijs: Bet tas viss diezgan īsā laika periodā?

EndrjÅ«: Termiņi bija saspringti Kazaņas projekts, pēc Minskas domām - normāli. Apmēram seÅ”i mēneÅ”i attÄ«stÄ«bai, bet ņemot vērā to, ka tika iesaistÄ«ti seÅ”i cilvēki. Tajā paŔā laikā mēs veidojām mobilo daļu un izstrādājām rÄ«kus televÄ«zijas producÄ“Å”anai. Bija ne tikai attēla izvade. Piemēram, izsekoÅ”anas sistēma ar optiku, Å”im nolÅ«kam bija jāizveido savi rÄ«ki.

Dmitrijs: Vai bija kāda adaptācija no viena projekta uz otru? Pusotra mēneÅ”a laikā vajadzēja izmantot attÄ«stÄ«bu un projektu ar jaunu saturu pārcelt uz jaunu vietni?

EndrjÅ«: Jā, tas bija pusotru mēnesi. Pēc Minskas projekta bijām plānojuÅ”i visai komandai divu nedēļu atvaļinājumu. Bet tÅ«lÄ«t pēc slēgÅ”anas pienāk puiÅ”i no Sechenov.com un saka: "Nu, tad darÄ«sim Kazaņu." Vēl paspējām nedaudz atpÅ«sties, bet diezgan ātri pārgājām uz Å”o projektu. Mēs pabeidzām dažus tehniskos darbus. Lielāko daļu laika pavadÄ«ja saturs, jo WorldSkills mēs to darÄ«jām pilnÄ«bā, tikai saskaņojām to ar producentu komandu. No viņu puses bija tikai scenārijs. Bet tas bija vienkārŔāk - nebija vajadzÄ«gas papildu atkārtoÅ”anās. Pats veidojot saturu, uzreiz redzat, kā tas darbojas dzinējā, un varat ātri rediģēt un koordinēt.


AttiecÄ«bā uz mobilo daļu mēs ņēmām vērā visus smalkumus, kas mums bija Minskā. Mēs izveidojām jaunu aplikācijas dizainu, nedaudz pārveidojām arhitektÅ«ru, pievienojām pamācÄ«bas, bet centāmies to padarÄ«t pēc iespējas Ä«sāku un skaidrāku. Mēs samazinājām lietotāja darbÄ«bu skaitu no lietojumprogrammas palaiÅ”anas lÄ«dz satura skatÄ«Å”anai. Ar pusotru mēnesi pietika, lai pabeigtu adekvātu projektu. Pusotras nedēļas laikā mēs sasniedzām vietu. Tur strādāt bija vienkārŔāk, jo visa kontrole pār projektu bija organizatoru rokās, nebija vajadzÄ«bas saskaņot ar citām komitejām. Kazaņā strādāt bija vienkārŔāk un vieglāk, un bija pavisam normāli, ka bija mazāk laika.

Dmitrijs: Bet vai jūs nolēmāt atstāt sinhronizācijas pieeju tādu, kāda tā bija, pamatojoties uz skaņu?

EndrjÅ«: Jā, mēs to atstājām pēc skaņas. Tas darbojās labi. Kā saka, ja tas darbojas, neaiztiec. Mēs vienkārÅ”i ņēmām vērā audio celiņa kvalitātes nianses. Kad viņi taisÄ«ja ievadu, bija apmācÄ«bas epizode, ko cilvēki varēja izmēģināt pirms izrādes sākuma. Pārsteidza tas, ka tad, kad trases atskaņoÅ”anas brÄ«dÄ« stadionā atskan vētraini aplausi, ā€œdzÄ«vajāā€, sistēma ļauj labi sinhronizēties ar Å”o trasi, bet, ja tajā brÄ«dÄ« ar trasi sajaucas ierakstÄ«ti aplausi, tad trase vairs nav noÄ·erta. Tādas nianses tika ņemtas vērā, un skaņas ziņā viss bija diezgan labi sinhronizēts.

PS Otrajā numura daļā runājam par zinātnisko datu vizualizāciju, procesu modelÄ“Å”anu citos projektos, spēļu izstrādi un maÄ£istra programmu "Datorspēļu izstrādes tehnoloÄ£ija" Turpinājumu publicēsim nākamajā rakstā. MÅ«s var noklausÄ«ties un atbalstÄ«t Å”eit:

PPS Tikmēr Habr angļu valodas versijā: tuvāk apskatīt ITMO universitāti.

Avots: www.habr.com

Pievieno komentāru