लाकडाच्या तुकड्यापासून ॲप स्टोअरपर्यंत
सुमारे वीस वर्षांपूर्वी, मी आणि माझा युनिव्हर्सिटीमधला रूममेट यांनी कचऱ्याच्या ढिगाऱ्यातून एक लाकडाचा तुकडा बाहेर काढला, त्यावर पट्टीने एक जाळी आखली, एका कलाकुसरीच्या दुकानातून सुमारे तीन पाउंडला काही काचेचे दगड विकत घेतले आणि 'गो' खेळायला सुरुवात केली. मी काय करत होतो याची मला काहीच कल्पना नव्हती. खरं तर, आजही नाही. पण त्या खेळातल्या कोणत्यातरी गोष्टीने मला लगेचच आकर्षित केलं — वरवर पाहता इतकी साधी वाटणारी गोष्ट इतकी अकल्पनीयपणे गहन कशी असू शकते, याचं मला खूप आकर्षण होतं. १९×१९ ची जाळी. काळे आणि पांढरे दगड. पाच मिनिटांत शिकता येतील असे नियम. आणि तरीही, त्या काळात, पृथ्वीवरील सर्वात शक्तिशाली संगणकसुद्धा एका सशक्त मानवी खेळाडूला हरवू शकत नव्हते. या गोष्टीने मला चकित केलं.
सुरुवातीचे वेड
ती आवड इतकी तीव्र होती की, किंग्स्टन युनिव्हर्सिटीमधील माझा अंतिम वर्षाचा प्रकल्प कॉम्प्युटर व्हिजनवर होता — मी एका फोटोवरून 'गो' बोर्डची स्थिती वाचण्यासाठी हाताने एक अल्गोरिदम कोड केला आणि त्यात ८७% पेक्षा जास्त अचूकता मिळवली. २००० च्या दशकाच्या सुरुवातीला, डीप लर्निंगच्या क्रांतीपूर्वी, मला याचा आतून अभिमान वाटत होता.
त्याच सुमारास, गो संस्कृतीचा प्रत्यक्ष अनुभव घेण्यासाठी आणि स्थानिक खेळाडूंविरुद्ध खेळण्यासाठी मी खास दोन आठवड्यांसाठी जपानला गेलो होतो. मी एकही सामना हरलो नाही. त्यातला एक सामना विशेष लक्षात राहिला: एक तरुण, कदाचित 'दान' स्तराचा, खूप लाजाळू, ज्याची नखे लक्षवेधी लांब होती आणि जो आपल्या वडिलांसोबत आला होता. काय घडले हे कळायच्या आतच माझा पूर्णपणे पराभव झाला होता — खेळातून माघार घ्यायला हवी हे लक्षात यायला मला बराच वेळ लागला.
मी भेट दिलेल्या प्रत्येक 'गो' खेळाच्या मैदानात सिगारेटच्या धुराचा इतका दाट थर होता की मोकळ्या हवेशिवाय खेळ पूर्ण करणे जवळजवळ अशक्य होते — आणि मी स्वतः धूम्रपान करतो. खेळाडू जवळजवळ सर्वस्वी वयस्कर होते. जपानची तंत्रज्ञान आणि नवनिर्मितीसाठी असलेली ख्याती पाहता, 'गो' हा खेळ उतारवयातील लोकांसाठी एक छंद असावा असे मला वाटले, आणि याचे मला आश्चर्य वाटले. 'गो'ला संगणकाशी कोणीही जोडत असल्याचे दिसत नव्हते. निदान अजून तरी नाही.
लांब अंतर
आयुष्य पुढे सरकत गेले. मी जावा डेव्हलपर म्हणून काम केले, विद्यापीठात असताना ॲक्सेंचरमध्ये एक वर्ष घालवले (त्या काळात तणावामुळे माझे सगळे केस गळून पडले), आणि अखेरीस आरोग्याच्या समस्यांमुळे मी बराच काळ बेरोजगार राहिलो. उद्योग माझ्याशिवाय पुढे निघून गेल्याने माझी जावा कौशल्ये अधिकाधिक निरुपयोगी ठरत गेली. मी बरोबरी साधण्याचा प्रयत्न केला, पण अंतर खूप वाढले होते — आणि माझ्या लक्षात आले की उद्योगाच्या त्या भागात पगार प्रत्यक्षात कमी झाला होता. ते फायद्याचे नव्हते.
या सगळ्यात, मी गो खेळत राहिलो. फार गंभीरपणे नाही — मी सुमारे पंधरा वर्षांपासून अधूनमधून एक्सेटर गो क्लबमध्ये जात आहे, आणि मी फार तर एक सर्वसाधारण खेळाडू आहे. पण त्या खेळाने माझी साथ कधीच सोडली नाही.
सर्व काही एकाच वेळी जुळून आले.
मग, अगदी थोड्याच काळात, एकाच वेळी अनेक गोष्टी घडल्या.
कोविडमुळे लॉकडाऊन लागला. काहीच काम नसल्यामुळे मी अक्षरशः वैतागलो होतो, पण सुदैवाने माझ्याकडे तीन ॲपल डिव्हाइसेस होती — कुटुंबाकडून आणि माझ्या पार्टनरकडून मिळालेली भेट. मी अल्फागो डॉक्युमेंटरी पाहिली आणि मी थक्क झालो. विद्यापीठात असताना ज्या गोष्टीने मला भुरळ घातली होती — की एखादे यंत्र 'गो' खेळात प्राविण्य मिळवूच शकत नाही — ती गोष्ट आता सुटली होती. आणि त्यामुळे सुरू झालेली एआय क्रांती तर नुकतीच सुरू झाली होती. चॅटजीपीटी आले. मग क्लॉड. त्यानंतर ॲपलने व्हिजन प्रोची घोषणा केली.
मी KataGo वापरायला सुरुवात केली आणि माझ्या लक्षात आले की त्याचा App Store® इंटरफेस योग्य नव्हता. मी iPhone® आणि iPad® साठी उपलब्ध असलेले Go ॲप्स पाहिले आणि ते... ठीक होते. कार्यात्मक होते. पण त्यांपैकी कशातही ॲक्सेसिबिलिटीची वैशिष्ट्ये नव्हती. संपूर्ण App Store वरील एकाही Go ॲपने VoiceOver, Voice Control, Dynamic Type किंवा ॲपलच्या कोणत्याही ॲक्सेसिबिलिटी मानकांना समर्थन देत असल्याचे जाहीर केले नव्हते. एकानेही नाही.
जपानमध्ये, फ्रेंच गो फेडरेशनमध्ये आणि कोरियामध्ये, उंच रेषा असलेल्या स्पर्शक्षम बोर्डांचा वापर करून अंध व्यक्ती अनेक दशकांपासून खेळत असलेल्या या खेळाच्या कोणत्याही डिजिटल आवृत्तीचा पूर्ण अभाव, ही एक अशी उणीव होती जी असायलाच नको होती. अंध गो खेळाडूंना ॲपच्या परिसंस्थेतून पूर्णपणे वगळण्यात आले होते.
सर्व काही एकदम जुळून आलं आणि सर्व गोष्टी अगदी व्यवस्थित जुळून आल्या. मी शिकण्याची प्रक्रिया वेगवान करण्यासाठी एआय साधनांचा वापर करून, अगदी सुरुवातीपासून स्वतःहून आयओएस डेव्हलपमेंट शिकणार होतो, आणि एक असं 'गो' ॲप तयार करणार होतो जे कोणीही खेळू शकेल — दृष्टी असलेले असो वा नसो.
शून्यापासून सुरुवात करणे
१ जुलै २०२४ रोजी, मी 'RenderedGoApp' नावाचा एक कोरा Xcode प्रोजेक्ट तयार केला — हे काही फार प्रेरणादायी नाव नव्हते. मला Swift, SwiftUI, RealityKit किंवा ॲपलच्या कोणत्याही डेव्हलपमेंट टेक्नॉलॉजीबद्दल काहीही माहिती नव्हती. मी कोणतेही औपचारिक प्रशिक्षण, बूटकॅम्प किंवा डेव्हलपर इव्हेंट्स न घेता, ॲपलच्या अधिकृत डॉक्युमेंटेशन आणि WWDC च्या मोफत सेशन्सच्या माध्यमातून सर्व काही स्वतःच शिकलो.
दोन आठवड्यांनंतर, १७ जुलै रोजी, मी त्याचे नाव बदलून "गोबान3D" ठेवले. गोबान हे पाय असलेल्या जाड लाकडी फळीचे पारंपरिक जपानी नाव आहे, ज्यावर 'गो' हा खेळ खेळला जातो. हे नाव योग्य वाटले — ते ॲपलच्या नामकरण मानकांनुसार होते आणि ॲप नेमके काय आहे हे त्यातून स्पष्ट होत होते.
मला प्राथमिक शाळेपासून ते कॉलेजपर्यंत डिस्लेक्सियासाठी मदत मिळाली. जेव्हा साधने तुमच्या गरजा लक्षात घेऊन बनवलेली नसतात, तेव्हा कसे वाटते हे मला माहीत आहे. त्यामुळे कोडच्या अगदी पहिल्या ओळीपासून, सुलभतेचा विचार नंतर केला गेला नाही — उलट, हा प्रकल्प अस्तित्वात असण्यामागे तेच मुख्य कारण होते.
सीनकिट आपत्ती
सर्वात कठीण क्षणांपैकी एक क्षण तेव्हा आला, जेव्हा ॲपलने सीनकिट (SceneKit) बंद केले — हे तेच ३डी फ्रेमवर्क होते ज्यात मी संपूर्ण बोर्ड सीन तयार केला होता. मला त्यात चांगलीच गती मिळाली होती. त्या सीनमध्ये एक फुलपाखरू इकडून तिकडे उडत होते, गवत डोलत होते आणि फिजिकली-बेस्ड लायटिंग होती. ते कमीत कमी सीपीयू वापरून अतिशय उत्तम चालत होते. मग ॲपलने घोषणा केली की त्याची जागा रिॲलिटीकिट (RealityKit) घेणार आहे.
माझा संताप अनावर झाला होता. पण काहीतरी अत्याधुनिक सादर करण्याच्या वचनबद्धतेमुळे आणि तांत्रिक त्रुटींना अजिबात थारा न देण्याच्या धोरणामुळे, मला माहित होतं की सीनकिटची प्रत्येक ओळ काढून टाकून त्याजागी टाकावीच लागेल. ते बटरफ्लाय टिकू शकलं नाही. रिॲलिटीकिट हे ॲपलचं नवं प्रमुख उत्पादन आहे, पण ते त्याच्या आधीच्या आवृत्तीपेक्षा खूपच जास्त महत्त्वाकांक्षी आहे — याबद्दल मला कधीतरी ॲपलच्या एखाद्या अभियंत्याशी चर्चा करायला आवडेल.
सद्यस्थिती
आज, गोबान3D (Goban3D) iOS आणि macOS साठी ॲप स्टोअरवर बाह्य बीटा आवृत्तीत उपलब्ध आहे. यात ॲपलच्या सर्व सात ॲक्सेसिबिलिटी श्रेणींमध्ये — व्हॉइसओव्हर, डायनॅमिक टाइप, व्हॉइस कंट्रोल, रिड्यूस मोशन, रिड्यूस ट्रान्सपरन्सी, सफिशिएंट कॉन्ट्रास्ट आणि डिफरेंशिएट विदाउट कलर — १००% ॲक्सेसिबिलिटी कव्हरेज आहे. हे ३.५" SE पासून ६.९" प्रो मॅक्स पर्यंतच्या प्रत्येक आयफोनवर, ९.७" पासून १३" पर्यंतच्या प्रत्येक आयपॅडवर आणि कॅटॅलिस्टद्वारे मॅक® वर नेटिव्हली चालते. ३डी बोर्ड रिॲलिटीकिटमध्ये भौतिक-आधारित मटेरियल्ससह रेंडर केला जातो, जे खऱ्या लाकूड आणि दगडाप्रमाणे प्रकाश पकडतात. जेव्हा तुम्हाला साधेपणा किंवा बॅटरी लाइफ हवी असेल, तेव्हासाठी एक क्लीन २डी मोड देखील आहे.
विकास प्रक्रियेबाहेरील कोणालाही अजून याच्या अस्तित्वाची कल्पना नाही. कोणतीही प्रसिद्धी नाही, समाजात याबद्दल जागरूकता नाही, आणि बाहेरील बीटा टेस्टर्सही नाहीत. एका अर्थाने, हा ब्लॉग पोस्ट म्हणजे मी याबद्दल पहिल्यांदाच जाहीरपणे सर्वांना सांगत आहे.
पुढे काय?
सर्वात मोठे प्राधान्य म्हणजे खऱ्या अर्थाने सुलभतेच्या गरजा असलेले बीटा टेस्टर्स शोधणे — जसे की अंध खेळाडू, अल्पदृष्टी असलेले लोक आणि शारीरिक हालचालींमध्ये अक्षमता असलेले लोक. हे ॲप ॲपलच्या मानकांनुसार बनवले गेले आहे, पण मानके ही केवळ सुरुवात आहे. काय योग्य आहे, काय नाही आणि कोणत्या गोष्टींचा मी विचार केलेला नाही, हे सांगण्यासाठी मला खऱ्या लोकांची गरज आहे. त्यांना शोधणे म्हणजे युनिकॉर्न शोधण्यासारखे असेल, पण मी हार मानणार नाही. प्रत्येकाचा समावेश व्हायला हवा.
जर तुम्हाला Goban3D वापरून बघायचे असेल, किंवा तुम्हाला अशा कोणाची माहिती असेल ज्यांना एका सुलभ Go ॲपचा फायदा होईल, तर मला तुमच्याकडून ऐकायला आवडेल. support@goban3d.com वर "Beta Tester" या विषय ओळीसह आणि तुमच्या iPhone, iPad, किंवा Mac च्या Apple ID ईमेल ॲड्रेससह एक ईमेल पाठवा. त्यानंतर लवकरच तुम्हाला TestFlight® आमंत्रण मिळेल.
मी आजवर केलेल्या कामांपैकी हे सर्वात कठीण आणि सर्वात समाधानकारक काम आहे. विद्यापीठातील फ्लॅटमधील लाकडाच्या एका तुकड्यापासून ते ॲप स्टोअरपर्यंत — याला वीस वर्षे लागली, पण आम्ही इथपर्यंत पोहोचलो.