আর্ট,প্রোগ্রামিং আর আরো কিছু

প্রোগ্রমার মানেই কি রসকসহীন কয়েকটা আতেল পাবলিক হবে?আর কোড লিখা শুরু তো করলাম ,কাল স্ক্রিনে ২ টা কথা আসল “Hello World” এরপর হাবিজাবি আরো কিছু অঙ্ক কষলাম।আর একটু ভুল করলেই আসে একগাদা এরর।যা ধুর আর প্রোগ্রামিং ভালো লাগে না। এ জাতীয় সমস্যা অনেকেরই হয়।আবার খুব ইচ্ছা গেম বানানোর (অনেকের প্রোগ্রামিং করার ইচ্ছাই শুরু এর জন্য)।টুকটাক গেম ইঞ্জিন দিয়ে হয়তবা বানানো গেল।কিন্তু প্রোগ্রাম করতে যেয়ে দেখি একগাদা করে করে ক্লাস লোড করতে হয়।সহজ কথাই স্ক্রিনে মজার কিছু দেখব বা এটা দিয়ে আরটিস্টিক কিছু করব এটা আর হয়ে উঠে না উঠে ।তাই যারা  আমার মত একটু আর্ট বা এইসব উল্টাপাল্টা দিকে উৎসাহী তাদের জন্য উল্টাপাল্টা কোডিং কিভাবে করা যায় এজন্য লেখা। আমরা জেনেরেটিভ আর্ট ,ডাটা ভিজুয়ালিজেশন,গেম ডেভেলপমেন্ট AI ইত্যাদি নিয়ে কথা বলব। তবে আগেই বলে রাখি আমার জ্ঞান এই বিষয়ে খুব কম ,সুতরাং ভুল হলে আর ভালো অল্টারনেটিভগুলা অবশ্যই বলবেন।আর ডাইরেক্ট কোড লেখা এখানে হবে না,তবে শুধু রিসোর্স আর এক্সাম্পল প্রোভাইড করা হবে।

 

অনেকগুলো টুল থাকলেও আমি মূলত যেটার কথা বলতে চাই সেটা হল Processing. যারা আরডুইনো ইউজ করেন তারা হয়তবা অনেকেই দেখেছেন যে তাদের স্টার্ট স্ক্রিনেই লেখা Ben Fry and Casey Reas এর  Processing এর কথা। তারা যখন ২০০১ সালের দিকে MIT media lab এর  ছাত্র ছিলেন তখন এই ওপেন সোর্স ল্যাঙ্গুয়েজ টা ডেভেলপ করেন।প্রসেসিং এর ওয়েবসাইট processing.org  এ ঢুকলেই এটা ডাউনলোড করতে পারা যাবে। ওপেন করলে প্রথমেই একটা জিনিস অদ্ভত লাগবে সেটা হল স্ক্রিনের ডান দিকে জাভা লেখা কেন?আসলে প্রসেসিং জাভাতেই লেখা এবং জাভা ভার্চুয়াল মেশিনেই এটা রান করে।যারা জাভা গ্রাফিক্স ক্লাস ইউজ করেছেন তারা ল্যাঙ্গুয়েজ এর সিমিলারিটি দেখে অবাক হবেন।প্রথমেই বলে রাখা উচিৎ এদের IDE দেখে যদি ভাল না লাগে তাহলে eclipse বা jetbrains কোন ide তে ক্লাস হিসেবে লোড করে পুরা জাভার ফাঙ্কশনালিটি দিয়ে ইউজ করতে পারবেন।(তবে এটা মনে হয় জাভাতে এক্সপেরিয়েন্সেড দের জন্য প্রযোজ্য)।

যাই হোক অনেক্ষন ধরে বক বক করলাম এবার আসল কথাই আসা যাক সেটা হল কি করা যায় এই ল্যাঙ্গুয়েজ বা টুলগুলা দিয়ে। ওয়েবসাইটে দেখার সময় নিশ্চয় খেয়াল করেছেন প্রসেসিং ওয়েবসাইটে এমনিতেই অনেক ডকুমেন্টেশন বানানো আছে।তা দেখে স্টার্ট করার জন্য যথেষ্ট।

Creative Coding and Generative art

আসলে এখানে আমরা প্রথম যেই কোড রান করি সেটা হল একটা বৃত্ত(ellipse) বা চতুর্ভুজ(rect)।এখন Fill ফাঙ্কশন দিয়ে ইচ্ছামত কালার চেঞ্জ করা যায়।হয়তবা random() ফাঙ্কশন দিয়ে আরো অদ্ভূত রঙ দিলাম।আবার সামান্য যোগ বিয়োগ করে স্ক্রিনে তাদের লোকেশন চেঞ্জ করলাম।এরকম হাজার হাজার কাজ করতে পারা যায় ।যার মুল লক্ষ্য হল -লক্ষ ঠিক না করে ক্রিয়েটিভ কিছু করা,কম্পিউটার স্ক্রিনে কিছু দেখা। মুভি তে অনেক ফিউচারিস্টিক জিনিসগুলা ,অদ্ভুত ভিজুয়ালাইজেশন অনেকগুলাই এই টুল্গুলা দিয়েই করা। openprocessing.com ওয়েবসাইটে এদের কিছু ভিজুয়ালিজেশন দেখতে পারবেন।মজার কথা হল এখানে নিদিষ্ট কিছু প্ল্যান না করে আগালেও এমনিতেও সুন্দর সুন্দর কিছু কাজ করতে দেখা যায়।

by Thomas Sanchez Lengeling
from codigogenerativo.com

 

 

 

 

 

 

 

Data Visualization

প্রথমতই বলতে পারি মাইক্রসফট এক্সেল দিয়েও তো ডাটা ভিজুয়ালাইজেশন করা যায়।কিন্তু সেটা কি যথেষ্ট?আমরা প্রায়ই দেখি ভাল ভাল নিউজ নেটওয়ার্ক বা বিভিন্ন ওয়েবসাইটে অনেক ডাটা সুন্দর করে ভিজুয়ালিজেশন করা হচ্ছে।বিশেষত weather news গুলাতে ওয়ার্ল্ড ম্যাপে সুন্দরভাবে ডাটা গুলা দেখানো হচ্ছে।এগুলার জন্যও প্রসেসিং ইউজ করা হয়।তবে এখানে বলা উচিৎ যে শুধু প্রসেসিং দিয়ে ইদানিং ভাল করা যায় না,কারন তার ওয়েব বেসড সাপোর্ট ভাল না।তাই প্রোসেসিং ফাউন্ডেশনই বের করেছে P5.js।জাভস্ক্রিপ্ট বলে এটা দিয়ে খুব ভালমতই করা যায় এই কাজ গুলো।

তবে ডাটা ভিজুয়ালিজেশনের জন্য সবচেয়ে ইউজফুল মনে হয় D3.js।তবে ইদানিং আরো কিছু ফ্রেমওয়ার্ক পপুলার হতে শুরু করেছে।

           

Twitter Data visualisation By Jer Thorp

 

Nature Of Code, AI and Game development

Nature of Code এই একটা বই দিয়ে Daniel Shiffman-আধা পাগল লোকটা কোডিং বিষয়ে আমার ধারনা বদলে দিয়েছেন।বলে রাখা উচিৎ ইনি প্রসেসিং নিয়ে প্রচুর টিউটোরিয়াল বানিয়েছেন coding rainbow ইউটিউব চ্যানেলে।যাই হোক বইটার লাস্টের দিকে এসে মুলত ট্র্যাডিশনাল মেশিন লার্নিং এর কথা সামান্য বলেছেন। কিন্তু এই বইয়ে মুলত চারপাশের পরিবেশকে কিভাবে  কোড দিয়ে উপস্থাপন করা যায় তাই দেখিয়েছেন।মূলত বিভিন্ন গেম ইঞ্জিনে আমরা যা দেখি সেটা হল ফোরস,ভেক্টর,এক্সিলারেশন ইতযাদি।তিনি এ জাতীয় সিম্পল ফিজিক্স ইঞ্জিন ডিজাইন করা দেখিয়েছেন।

তবে এখানে বলা উচিৎ  আমরা যেই গেম ইঞ্জিনগুলা ব্যাবহার করি সেগুলা অনেক বেটার,ফ্লেক্সিবল আর অনেক ভাল এলগরিদম অলরেডি আছে। আবার অলরেডি C# বা অন্যান্য বিভিন্ন জায়গায় গেম ডেভেলপমেন্ট বিষয়ে প্রচুর এক্সাম্পল আছে ।আর এই যে বইটার বললাম সেটাও তো অনেক গেমিং বইয়ের উপর নির্ভর করেই লেখা।বাট তারপরও আমি বইটা সাজেস্ট করব,কারন এর থিনকিং প্রসেস আর সিম্পলিসিটি আসলেই ভালো লাগার মত।আর যদি সিম্পল 2D গেম বানানোর ইচ্ছা থাকে তাহলেও কিন্তু এই বই আর প্রোসেসিং দুইটারই টারই কোন তুলনা নাই।

 

 

Interactive Projects (From Simple Arduino to Music and Art)

যারা আরডুইনো বেশি ইউজ করি তার প্রায় সবাই টুকটাক কোন কাজ করার জন্য সিরিয়াল লাইব্রেরি বা আরডুইনো ফার্মাটা বেসড লাইব্রেরি ইউজ করে অন্য ল্যাঙ্গুয়েজ দিয়ে প্রোজেক্ট করেছি। হ্যাঁ এভাবেই মূলত বিভিন্ন সিস্টেমের সাথে ইন্টারেক্টিভ আর্ট আর প্রোজেক্ট করা হয়।ধরুন কয়েকজন এর মুভমেন্ট এর উপর ভিত্তি করে ওয়ালে আর্ট জেনারেট হচ্ছে,আবার আপনি সামান্য হাত নড়াচড়া করে বিশাল স্ক্রিনে আকনো শুরু করছেন।এরকম হাজার হাজার ইন্টারেক্টিভ প্রোজেক্ট হচ্ছে।

যদিও ইদানিং Dj দের হাবিজাবি কিছু মিউজিক মানুষ শুনে।ভাল লাগুক(-_-) আর নাই লাগুক মিউজিক গুলা কিন্তু অন্যরকম ।তাদের বিশাল বড় সব কনসার্টে দেখা যায় মিউজিক এর উপর নির্ভর করে বিভিন্ন ভিজুয়ালিয়াজেশন হচ্ছে-এইগুলা সবই প্রোসেসিং দিয়ে করা যায়। মজার কথা হল তারা এই অদ্ভুত মিউজিক গুলা বানানোর জন্যেও কিন্তু এ জাতিও বেশকিছু টুল ইউজ করেন।

 

 

অন্যান্য কিছু 

আসলে চাইলে তো যেকোন ল্যাঙ্গুয়েজ দিয়েই সবকিছু করা যায়। আর প্রোসেসিং এর কোথা যে বললাম এটা দিয়ে যে শুধু ২/১ টা কাজ করা যায় তাই না ,বুদ্ধি খাটালে অনেক কিছু করা যায়।এত চিন্তা না করে কোনদিকে কাজ শুরু করে দিলেই ভাল।তবে প্রোসেসিং আমি সব জায়গায় প্রধান উদাহরন হিসেবে ব্যাবহার করার উদ্দেশ্য হল এর সিমপ্লিসিটি।যদিও এগুলো কাজের জন্য Cinder,OpenFrameworks এগুলা C++ বেসড একইরকম ভাল অপশন।তাই এগুলাও ব্যাবহার করা যায়। এখন প্রশ্ন যদি হয় শিখব কিভাবে তাহলে এদের ওয়েবসাইটের ডকুমেন্টেশন দেখে শেখা সবচেয়ে ভালো।বাট সব বিষয়েই Kadenze.com ওয়েবসাইটে অনেক ভাল কোর্স প্রোভাইড করে।তবে একটা কথা  আর্ট এর কথা যখন বললামই তখন 3D এনিমেশন বা এজাতীয় কাজের কথা কিছুই বললাম না।শুধু সিম্পল কিছু আর্ট বা কিছু ভিজুয়ালাইজেশন কিংবা সামান্য গেম ডেভেলপমেন্ট এর কথা বললাম।এগুলা দিয়েও যে বড় কাজ করা যাবে না তা নয় কিন্তু সেগুলো তো আরো এক বিশাল দিক(অন্য দিনের জন্যই থাক)।

 

বাট লাস্টে কিছু কথা বলে শেষ করব –সেটা হল যদিও এগুলা বিগিনার হিসাবে খুবি মজার ।ছোট কাজ ঠেকে বড় সফটওয়্যারও এগুলা দিয়ে বানানো যায় এবং কাজ শুরু করার জন্য এগুলাই সেরা,তবুও হাই লেভেল এর কাজ এর জন্য ভাল হাইলেভেল ল্যাঙ্গুয়েজ দিয়ে কাজ করা দরকার।Google AI experiments এর ইন্টারেস্টিং সব প্রোজেক্ট ,Prisma,FaceApp এর মত এপে কত ইন্টারেস্টিং সব কাজ যখন দেখি তখন মনে হয় আর্ট আর মিউজিক আমাদের তো করার দরকারই পড়ছে না । কারন মেশিনই তা করে দিচ্ছে।আর এগুলা কাজ করার জন্য তাহলে কাজগুলো একটু অন্য  ভাবেই করতে হবে।সেসব নয়ত আরেকদিনের জন্য থাকলো।কারন আজই তো আর আমাকে এক্সপার্ট হতে হচ্ছে না? তাই একটু করে আগানোই বেটার। 🙂 🙂 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *