Showing posts with label virtualreality. Show all posts
Showing posts with label virtualreality. Show all posts

8/1/18

This week's Wednesday Evening Training: continuing our 3d and IoT projects and a bit of Windows programming

This Wednesday Evening Training, we continued our exploration of IoT and 3D technologies and learned about Windows programming.

Also: a special welcome to our guests from Siemens Germany: Florian, Alexander and Achim.


Windows DIB Buffer and Sound Buffer

First we had a nice demo and code walkthrough of our colleague Quincy Jacobs, who has experimented with the Windows DIB Buffer and Sound Buffer using good old C++/C. This ignited a lively discussion on wave and sound generation and techniques used for that. It took me right back to the era of home computers, in which I experimented a lot with the Commodore 64's SID (Sound Interface Device) programmable sound generator chip. Revolutionary for it's time (see also: https://en.wikipedia.org/wiki/MOS_Technology_SID).

BabylonJS

Next, I gave an update on my BabylonJS Archimate model project. This week, I had implemented an Observer to keep the Archimate (JavaScript Object) model in sync with the BabylonJS model. This enables the 3D model of the architecture being updated at runtime. I abandoned the proxy approach that I mentioned last week, since this is not supported by IE (in Edge it is supported) and IMHO it's too early to exclude IE. Instead I used a classic Observer implementation in JavaScript. We did a code walkthrough and discussed application of the Observer- and Factory pattern in general and in JavaScript. There is interest to plan a separate knowledge session on BabylonJS and WebGL. BabylonJS is based on WebGL (Web Graphics Library), which is a JavaScript API for rendering interactive 2D and 3D graphics within any compatible web browser without the use of plug-ins.

To be continued...

RFID (Radio-Frequency Identification)

As promised last week, we took a look at RFID technology. Roughly speaking: using a reader/writer  your application can interact with RFID tags (e.g. in your security card). Your RFID tag provides a unique id to your application, which you can use as a key in your database. In a nutshell this is the basis of access and registration systems. At very low costs, a few Euro's actually, you can have a lot of fun in your IoT project! See the links below for resources on this.
We could use RFID labels and a scanner for building an interactive toy for young children (see my last week's post on this). Based on RFID and Lilypad Arduino technology we should be able to create some kind of easily foldable and transportable carpet on which you can place all kinds of tagged objects and interact with them using an sowed in Lilypad Arduino.

Anyway... a lot to learn!

Further reading

Do you want to read more on the topics in this post? Here are some links...

RFID: https://en.wikipedia.org/wiki/Radio-frequency_identification
Tutorial 12 for Arduino: RFID Card Reading: https://www.youtube.com/watch?v=gIlSLwcbeTU
What is RFID? How RFID works? RFID Explained in Detail: https://www.youtube.com/watch?v=Ukfpq71BoMo
MF522 RFID Write data to a tag: https://www.youtube.com/watch?reload=9&v=uihjXyMuqMY
RFID Programming Made Simple and Cheap: https://www.developer.com/net/article.php/3628811/RFID-Programming-Made-Simple-and-Cheap.htm
BabylonJS, see my previous 19th july post: https://hansrontheweb.blogspot.com/2018/07/this-weeks-wednesday-evening-training_19.html
Understand the Factory Design Pattern in plain javascript (one of the many articles on this): https://medium.com/front-end-hacking/understand-the-factory-design-pattern-in-plain-javascript-20b348c832bd
The Observer Pattern in JavaScript explained: https://pawelgrzybek.com/the-observer-pattern-in-javascript-explained/
WebGL: https://en.wikipedia.org/wiki/WebGL

Past Wednesday Evening Trainings

You'll find post of previous sessions here: https://www.linkedin.com/search/results/content/?keywords=%23wednesdayeveningtraining

Next Wednesday Evening Training

Next Wednesday Evening Training, we'll take a deep dive into Micro Services. We'll discuss this from both an architectural point of view and a (Java) software engineering point of view. Demo's will be shown, code walkthroughs will be done and hopefully we'll have yet again a lively discussion!

Experiment, learn and have fun!


#capgemini #werkenbijcapgemini #lifeatcapgemini #wednesdayeveningtraining #3d #virtualreality #unity3d #babylonjs #arduino #rfid #iot #internetofthings #archimate #archi #patterns #windowsprogramming #c #c++

7/25/18

This week's Wednesday Evening Training: continuing our Arduino, Raspberry Pi and Babylon projects and brainstorming on new projects

This Wednesday Evening Training, we have continued our exploration of IoT. We made progress on our projects and had a brainstorm of two new project initiatives: creating an application for tuning musical instruments (yes, like a digital pitchfork like the one that you can buy online for a few Euro's, but building one is a lot more fun) and building an interactive toy for young children (yes, with lots of lights and sounds, robust and easy to travel with).

One of the nice things of the Wednesday Evening Trainings is that it's free format. We, as a group, can decide on the spot what topics we want to discuss and what learning form we'll adopt. That's agile! In this case, two of our colleagues came up with some idea's for which we could immediately search for suitable technologies. In case of the toy project, we found out that using RFID and Lilypad Arduino we should be able to create some kind of easily foldable and transportable carpet on which you can place all kinds of tagged objects and interact with them using an sowed in Lilypad Arduino. It's a rough concept, but this could work.
Anyway... a lot to figure out to realize this. Therefore, the next Wednesday Evening Training will contain the following topics: RFID and Arduino Lilypad. We'll gather some links, labs, tools and share video's for this. There is a lot to be found on the internet. See my links below for a few pointers.

 

Also, this evening, we had a portion of BabylonJS for dinner. Last week I showed my first prototypes of a 3d architecture model. This week I showed a mechanism to synchronise a JavaScript based Archimate architecture model with a BabylonJS 3d (Mesh) model. Since it must be possible to immediately reflect changed in one model into the other, I looked for some kind of observer pattern implementation. I chose not to use a heavy framework like Angular, but keep my application as light weight as possible (perhaps I have to say: "Frameworkless JavaScript"). Luckily, JavaScript currently includes proxies, which is quite useful in this situation.
Also next week, I'll show my proceedings on the prototypes and do some explanation on JavaScript proxies.

To be continued...


Further reading

Do you want to read more on the topics in this post? Here are some links...

BabylonJS portal: https://www.babylonjs.com
JavaScript Proxies: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy
RFID Basics: How to Read and Write Tags: https://blog.atlasrfidstore.com/rfid-basics-read-write-tags
Arduino hardware, also the Lilypad: https://www.arduino.cc/en/Main/Products
The ArchiMate Enterprise Architecture Modeling Language: http://www.opengroup.org/subjectareas/enterprise/archimate-overview
Archi Open Source ArchiMate Modelling Tool (a free and easy to use open source modelling tool to create ArchiMate models and sketches): https://www.archimatetool.com/

Past Wednesday Evening Trainings

You'll find post of previous sessions here: https://www.linkedin.com/search/results/content/?keywords=%23wednesdayeveningtraining

Next week

In next week's Wednesday Evening Training, we'll be having an additional "klusavond" (translated into English as "a typical Dutch evening of doing, learning and a lot of fun") on Arduino, RFID and BabylonJS.


#capgemini #werkenbijcapgemini #lifeatcapgemini #wednesdayeveningtraining #3d #virtualreality #unity3d #babylonjs #arduino #arduinolilypad #rfid #iot #internetofthings #archimate #archi

7/19/18

This week's Wednesday Evening Training: continuing Virtual Reality with Unity3D and getting to know BabylonJS

This Wednesday Evening Training, we have continued our exploration of Virtual Reality using Unity3D. In previous sessions, we already learned what Unity3D can do, so we continued our handson labs guided by our Unity3D champion Alexandra Belzon.

We have also started exploring BabylonJS, with which I have played around past weeks.




We know Unity3D, but what is BabylonJS?

BabylonJS is an open source 3D engine based on webGL and JavaScript. With BabylonJS you can create well performing 3D models and animations, even on your mobile. You can "walk through" your model, use a cardboard VR headset and implement augmented reality applications. It's a rather recent technology, but the platform is growing fast in popularity.

There are a lot of applications for BabylonJS, e.g. in product and data visualization, gaming, education. Recently I even stumbled upon an application of BabylonJS in Microsoft SharePoint, visualizing and manipulating data and documents in 3D. See the links below for more information.

This evening, we saw a lot of demo's and code examples and we did our first handson labs. In the past weeks I've experimented using BabylonJS for creating a 3d model of Archimate architecture views, generating JavaScript from Archi XML's (.achimate files) using XSLT. We did a code walkthrough and in the next sessions, I'll be showing progress on my prototypes.

To be continued for sure!

Further reading

Do you want to read more on BabylonJS? Here are some links...

BabylonJS portal: https://www.babylonjs.com
BabylonJS Playground (online editor): https://www.babylonjs-playground.com
BabylonJS examples (select, view, edit): https://doc.babylonjs.com/examples
BabylonJS GitHub repo: platform software, tools, extensions, reusables: https://github.com/BabylonJS
BabylonJS online editor: http://editor.babylonjs.com
BabylonJS Meshes Library: https://github.com/BabylonJS/MeshesLibrary
Building up a basic demo with Babylon.js: https://developer.mozilla.org/en-US/docs/Games/Techniques/3D_on_the_web/Building_up_a_basic_demo_with_Babylon.js
BabylonJS Sandbox - Drag and drop gltf, glb, obj or babylon files to view them: https://sandbox.babylonjs.com/
Babylon101 - Online course: https://doc.babylonjs.com/babylon101/
Introduction to WebGL 3D with HTML5 and Babylon.js: https://mva.microsoft.com/en-us/training-courses/introduction-to-webgl-3d-with-html5-and-babylonjs-8421
Microsoft is bringing the SharePoint work environment to virtual reality headsets: https://www.theverge.com/2018/5/21/17376422/microsoft-sharepoint-spaces-mixed-reality-virtual-reality-features
BabylonJS on Twitter: https://twitter.com/babylonjs
Google Cardboard: https://vr.google.com/cardboard/get-cardboard/

Past Wednesday Evening Trainings

You'll find post of previous sessions here: https://www.linkedin.com/search/results/content/?keywords=%23wednesdayeveningtraining


Next week

In next week's Wednesday Evening Training, we'll be having a "klusavond" (translated into English as "a typical Dutch evening of doing, learning and a lot of fun". There will be plenty of room for all the technologies we have learned so far. This kind of session form an excellent opportunity for mixing technologies, creating applications using multiple technologies.
In my opinion, a good way to create new idea's and innovate and having a lot of fun in the meantime!


#capgemini #werkenbijcapgemini #lifeatcapgemini #wednesdayeveningtraining #3d #virtualreality #unity3d #babylonjs

4/18/18

This week's Wednesday Evening Training: Virtual Reality with Unity3d handson labs, the continuing story...

We continued our introduction to Virtual Reality with the Unity cross-platform game engine this week with the bowling alley handson lab. We have studied the techniques used, experimented and played around in our bowling alleys.

It was informative and fun!

Thanks to our VR champion Alexandra Belzon for sharing her knowledge!

And there still remains a lot to explore, so... to be continued...

Next week in the Wednesday Evening Training

Next week, we'll have a "Klusavond" (roughly translated from Dutch: "an evening with a lot handson labs"), with various topics, e.g. Blockly, WebAssembly & NodeJS, Raspberry Pi, Arduino & Witty Cloud.

Want to start with Unity3d?  See the links below

Download Unity3d: https://unity3d.com/get-unity/download
Sample projects, a great way to learn: https://unity3d.com/learn/tutorials
Unity3d User Manual: https://docs.unity3d.com/Manual/index.html
A quick video how to download and install: https://www.youtube.com/watch?v=jkV5X6FWvrM

#werkenbijcapgemini #lifeatcapgemini #capgemini #wednesdayeveningtraining #unity3d #virtualreality #vr







3/7/18

This week's Wednesday Evening Training: continuing with Unity3D VR

This evening, we continued our labs on Unity3d VR. In our last session, we started our handson labs to create a simple interactive ball game. Now we added functionality needed for our game to be played in VR using the HTC Vive headsets and controllers. We used the VRTK (Virtual Reality Toolkit) and SteamVR to get started.

Next time, we'll evolve our VR game into a bowling alley.

To be continued...

Do you want to try this yourself? 
There is lot's of material out there! For starters, some links below:
VRTK GiHub repo
Virtual Reality Toolkit YouTube channel
Unity3d manual
Unity3d official site
Swords and shovels (learn game development)


#werkenbijcapgemini #lifeatcapgemini #capgemini #wednesdayeveningtraining #unity3d #vr #virtualreality #gamedevelopment