TESTING PHOTON EDUCATIONAL ROBOT

Photon is a robot designed for an educational purpose. It strives to introduce children into the world of technology, develop their creativity and logical thinking, and teach them basics of programming. In the last few weeks, we’ve had the chance to test the robot, the applications created for it and the educational materials prepared for teachers. Does this product work well in education? We try to answer that question below.

Development of the robot was financed by means of a crowdfunding campaign, which explains why Photon was popular even before it became available for purchase. This product is in many ways similar to Dash made by Wonder Workshop. Both robots have similar shape, size and assortment of sensors, although construction-wise, capabilities of Dash are slightly broader (it can move its head and accessories connected to rotating ports).

Producer claims that children as young as 4 years old can start working with Photon. They also insist that even twelve-year-olds (the educational version is actually recommended for fifteen-year-olds) can operate the robot. This considerable age bracket is justified by four different programming languages, every one of them adjusted to abilities of kids of different ages.

Photon is available on the market in two versions: home and educational. Versions don’t differ in construction, yet they give access to different apps. The home robot version won’t be able to connect with the educational Photon EDU app, even if you purchase educational materials separately. It seems as if the educational version came into existence due to reasons completely irrelevant to learning. It creates unnecessary confusion, especially for schools, which must be extra careful to buy the version they can actually use with educational materials. This distinction and limitations are hard to understand also from an individual client’s perspective, particularly since both versions are available at exactly the same price. Therefore, if you plan to use the educational version, be sure to state it clearly in the purchase order, or you might get disappointed.

CONSTRUCTION

Photon is a mobile robot equipped with LED lights, a speaker and an array of sensors. Light and touch sensors are placed inside its head, a distance sensor is on the front of the robot and four contrast sensors, which you can use to examine the surface, are hidden underneath. The robot also has a microphone and rotation sensors built into the drive, which allow to precisely control its movements.

Shapely construction gives the robot likeable characteristics and the sounds it emits will surely appeal to children. However, it’s not a versalite construction. Apart from programming the robot’s movements and reactions to certain stimuli, you won’t be able to do much. Pity there’s no option to attach moving accessories, like with Dash – the robot would be more interactive.

Photon reacts to light and touch. It has some problems with detecting obstacles. As for reacting to sounds, only stomping right next to the robot works every time. Photon is powered by a built-in accumulator, which works up to 8h if fully charged. Charging it through the microUSB takes around 3h; during this time, you cannot play with the robot.

Photon robot sensors

PROGRAMMING

Let’s begin with technical requirements. Photon can be connected with smartphones and tablets with iOS and Android systems. It requires Bluetooth 4.0 technology or newer and 1 GB RAM. Specific requirements and a list of compatible devices can be found here.

Three apps for working with Photon through mobile devices can be downloaded for free in App Store and Google Play. The apps are: Photon Robot, Photon Coding (both available for all users) and Photon EDU (dedicated for educational institutions). In the near future, the producer plans to launch Photon Magic Bridge app, which will allow users to program Photon directly from Windows (only for PC). To establish connection between the robot and a computer you’ll need to additionally purchase Bluetooth Low Energy adapter, which is good news for those, who are already using LEGO WeDo 2.0. Photon requires the same adapter that many LEGO users already have: BlueGiga BLED 112.

All apps prepared by the producer (Photon Robot, Photon Coding and Photon EDU) enable you to program Photon in four visual programming languages. The difference between these apps boils down to the usage of programming languages and the availability of built-in tasks. Everything is described in more detail below. The new Photon Magic Bridge app, designed for Windows OS, will also allow you to program the robot in ScratchX and MakeCode environments.

Programming languages

The producer prepared 4 different VPLs that allow you to program Photon in different ways. Languages vary in interface design, complexity of instructions and possibilities. Thanks to several different VPLs, you can use this robot with preschoolers and primary school pupils. You simply need to select the right VPL for the particular age group you work with. Access to different programming languages and adding new instructions gradually as you progress (in Photon Robot and Photon EDU apps) allow to accurately adjust difficulty levels when working with the robot.

Every programming language for Photon has recommended age limits. The simplest interface, Photon Draw, is recommended for children older than 5 years old. At this point, you may be wondering how to make use of the robot when working with younger kids? After all, Photon is advertised as a tool for teaching even four-year-olds. There’s an option to control the robot remotely through an app, where no age limits apply. Perhaps the youngest kids are supposed to rely on this tool alone?

Photon Draw (5+)

In this language interface, user creates a sequence of robot movement by drawing a path on a touchscreen. Once the path is drawn, it’s possible to add instructions not related to movement (make sound, change color, wait for touch). Perhaps this is why producer mentions programming in this context, although “programming elements” seems a more fitting term.

This VPL is intended for children above 5 years old, yet even five-year-olds should have no problem controlling the robot. On the right you can see a sequence of robot movement; once activated, Photon will wait for someone to touch the sensor on its head, then navigate alongside three sides of an imaginary square and change the color of its eyes and antennae on every corner. Creating such a sequence is easy. All you need is to draw the right shape and add instructions on the intersections of the path: wait for touch and chage light color. However, this language has certain limitations. Despite repetitive movement, every command must be inserted separately. What’s more, you won’t be able to randomly select the light color.

Playing with this language can be an interesting preface to programming classes. It familiarizes children with potential of the robot, teaches them how to control it and create intruction sequences. For youngest pupils, it can also constitute a good introduction to learning with tablets. Nonetheless, the interface makes assebling longer sequences troublesome. What’s more, correcting mistakes is troublesome. In order to remove an already existing path, you must backtrack along the same line, which isn’t always easy. Even if you make a tiny mistake, you have to resume from the start. And due to the specific method used to create paths, you won’t be able to command Photon to move backwards.

Photon Badge (6+)

Photon BadgeWith this language, programming starts for real. Programs are created by assembling visual instructions in the right order in the PROGRAM window. Instructions are executed from left to right. One program can hold up to 10 instructions at once. If you’re eager to create more complex programs, you can rely on two functions, which hold up to 10 additional instructions each. This solution significantly expands robot control options.

This programming language is recommended for children above 6 years old. Pupils at this age will most probably manage creating programs with programming blocks. On the other hand, they may have problems with understanding and using functions, especially since in the tasks prepared by the producer, functions are not always applied as they were intended (more on that later). Possibilities of this interface are still quite narrow. Lack of loops and conditional instructions forces users, who want to create slightly more complex programs, to rely on more abstract programming concepts, such as nested functions or recursion.

On the right, you can see an example of program created in the Photon Badge language. To get the same result that was acheived in the Photon Draw language, we had to use a function; otherwise, the program wouldn’t fit the limit of 10 blocks. The function contains blocks responsible for robot movement: two blocks to move forward and and one block to turn right. In the main program, this function is used twice, each time to cover the distance of three imaginary squares. Besides blocks invoking the function, the main program also includes a wait for touch block and blocks switching the light color. Since there’s no way to define motion parameters, if you want the robot to travel a longer distance, you must use two movement blocks. This language interface doesn’t allow to loop any instructions, or to select light color at random.

Photon Blocks (7+)

Photon BlocksThis programming language, due to joint visual-text form, resembles solutions known best from well-tried tools for teaching programming, such as Scratch or Google Blockly. In this case, you have at your disposal a wide selection of blocks divided into 4 categories. All instructions look like colorful blocks with text (available in Czech, German, English, Polish, Slovak and Slovenian languages). Programs are created by dragging blocks into the programming panel and attaching one under another. Programs are executed from top to bottom. In addition to the main program panel, you can create and use scripts of three functions.

Instructions available in this VPL are more advanced, so expect parameters. With this language, you are able to precisely define robot movement (distance defined in cm, motor power, random factor) and turning parameters (direction, drive, angle defined in degrees, or infinite turning until a stop). The robot can also follow a line (no information on how the line should look line), or stop its movement altogether. Blocks in the action palette allow you can change the color of robot’s eyes and antennae (randomly as well), emit sounds (also randomly, and with option to wait until the end of the sound), or perform special actions (for example, Photon can sneeze). Among blocks in the flow palette, you’ll find instructions that can make Photon wait from 1 to 30 s, or as a result of certain sensor readouts: distance, touch or no touch, brightness or darkness, silence or noise, black line (vertical, horizontal, or none), or IR signal received from another Photon on 1 of 3 different channels. You can also use loops and conditional statements. The final blocks palette allows you to use 3 functions, break a loop, or transmit an IR signal.

With Photon Blocks, it’s possible to create quite advanced programs. Educational potential of this language is lower than Scratch (there’s significantly less instructions and you control only Photon, so there’s no interaction with other objects), but slightly higher than LEGO Education WeDo environments, which are recommended for the same age group. Some functions available in the interface (conditional statements, functions) may prove a bit too challenging for the youngest students. The interface could be more user-friendly. Blocks are very large (it’s possible to change program preview, but not the menu size), which hinders assebling extensive programs.

Our examplary program for Photon will look much more professional in this setting. What’s even more important, it has more educational value. At the beginning, the program waits for a touch sensor signal. Once that condition is fulfilled, the robot will three times repeat this sequence of instructions: go forward, turn right and select new light color at random.

Photon Code (10+)

interfejs Photon CodePhoton Code is the most advanced VPL officially issued by the producer and recommended for the oldest age group. At first glance, it looks very similar to Photon Blocks. Photon Code is also based on a visual-text model, instructions are read from top to bottom, even the content of instructions doesn’t seem to differ much. However, Photon Code includes some interesting novelties that make it seem more similar to “adult” text-based programming languages. Instructions are available only in English, parameters are written inside the blocks and emphasized only with colored font. Together with a semicolon at the end of every instruction and brackets appearing in some blocks (clever details), this layout clearly hints at syntax found in many text-based programming languages. Therefore, an instruction to go forward will become “Go ahead 10 cm”, all neatly packed in one block. During programming classes, perhaps with a brief introduction in the form of Photon Blocks, this language can prove an interesting introductory tool to using text-based programming languages.

In this case, like previously, all available instructions are grouped into 4 categories. You have at your disposal movement, action, flow and other kinds of instructions. There’s also something new: 4 variables to use in the program.

Picture on the right presents an example of a program you can create in this language. All parameters are contained in the blocks. Thanks to visible separators, you can even write the program without blocks:

Start program
Wait for touch;
Repeat 3 times {
Go ahead 20 cm;
Turn right 90°;
Color both random;
}

All of these programming langages (Photon Draw, Photon Badge, Photon Blocks and Photon Code) are accessible through every app (Photon Robot, Photon Coding, Photon EDU) prepared by the producer. If you want to program Photon independently, your best choice would be Photon Coding app, which is quite straightforward and gives unlimited access to all programming languages. The remaining apps have some additional content, which transform playing with Photon into a set of tasks to complete at home, or to use in school environment. More detailed description of apps for Photon, as well as their advantages and flaws, are described below.

Applications

Application is dedicated to home users and contains an array of dramatized tasks grouped into chapters. As children complete tasks, they go through various programming languages and learn their possibilities.

When creating an account in the app, you can choose difficulty level (i.e. time required to perform tasks) and specify whether you’re right or left-handed (a round of applause for this important detail). Difficulty level cannot be changed later, so you might want to browse the demo materials before. You can find there completed programs, which show possibilites of various VPLs. Nonetheless, we don’t advise exploring demo materials for too long. When you activate the completed programs, Photon executes commands, which might as well be selected at random (e.g. turn right, then turn left in a sequence). It’s quite bizarre for an educational app, since it indirectly suggests that programming has no logic or objective.

The story created to make individual tasks more interesting to children is not very absorbing, unfortunately. Animations that appear between tasks reveal that Photon crashed on our planet and lost its memory. Your task is to help it regain its abilities. It’s difficult to understand how cookies are supposed to help Photon, but reaching them is almost always the goal of programming tasks. Other robot adventures are difficult to decipher, because the animations aren’t sufficiently explicit. In comparison to the story, the points received upon completing tasks are much more motivational. You can exchange them for additional functions and abilities of Photon, e.g. increasing movement speed, or new light colors.

zadania Photon RobotTasks
Every chapter includes 20 tasks. At present, there are 8 chapters available, two more are in preparation. The producer claims there will be over 250 challenges, so probably, even more chapters will be released. As you complete tasks, the difficulty level and the number of programming languages used gradually increase, but the tasks themselves are not grouped into chapters contentwise. Among various tasks, you’ll find programming exercises in several languages and mini games (usually, around 4 in one chapter) that allow for some change in activity.

The content of programming tasks is really diverse. There are several high quality tasks that teach important programming ideas, but we’ve come across some exercises that are completely uneducational. This contrast is most visible when applying functions in Photon Badge programming language. You’ll encounter tasks that splendidly explain nesting functions or recursion, but you’ll also have to complete exercises that force user to incorrectly apply functions, only because there’s no space left in the basic program. Many exercises consist of completing partially written programs, which is a good idea on the condition that the original program makes sense (not always the case). Tasks that involve Photon Draw become especially frustrating over time. Later on, they resemble skill games, rather than educational tasks. Long routes require faultless drawing skills, performing the route by the driving robot takes time and you’ll need a lot of floor space. It seems as if the creators didn’t notice the moment they exhausted the educational potential of this interface. Significant amount of space was taken over by mini games and tutorials that present new programming languages (in chapter 7, Photon Blocks tutorial equals 13 tasks + 10 more in the next chapter).

Task descriptions lead us to believe that some chapters include less educational value, than one would expect. Moreover, some challenges and mini games are so simple that any child could complete them in a flash. Therefore, to avoid exhausting child’s interest, the producer introduced the so-called “travel points”. At the beginning, Photon has 100 travel points. Commencing any challenge uses up from 5 to 15 points. It means that you won’t be able to complete more than around dozen tasks in one go. When travel points are exhausted, you must wait at least 90 mins to regenerate them. This solution has its pros and cons. On one hand, taking breaks in the learning process and repeating the topic improves knowledge retention. On the other hand, playing with the robot can be frustrating; especially in the beginning, when tasks are simple and include mostly mini games and tutorials (which also use up points). It may happen that after an hour and half of waiting, a child will be able to complete merely a few tasks. Sometimes, Photon counts the points regeneration time incorrectly and forces you to wait even longer. Once in a while, you may encounter another interesting error: in random sessions, the mechanism adds points with each task, instead of subtracting them. It occured twice during our tests and unintentionally helped us to streamline the process.

Photon tutorialWhat’s the use of Photon?
The most astounding conclusion after working with the app is the questionable usefulness of the Photon itself. In majority of tasks, Photon simply executes the command according to the program (or route). But you won’t be able to tell whether the program was executed correctly by observing the robot. In the real world, there are no labirynths, nor cookies that are visible only on your smartphone or tablet screen. To learn your results, you must look at the screen; Photon is observed only incidentally, either to use one of its sensors in the right moment, or to avoid collision with a wall. In practice, holding Photon upside down in your hand is the easiest solution. You loose almost nothing of the experience, yet you won’t have to constantly chase the robot.

Photon’s progress versus a child’s progress
As you already know, the app uses various interfaces to work with Photon. You start with a basic, modest interface. Gradually, as you familiarize youself with robot sensors and its abilities, more instructions become available. It’s a great way to introduce new concepts and increase difficulty level. But does Photon really develop together with a child? In our opinion, no. More precisely, it’s the child that doesn’t develop together with Photon. Even in the most optimistic scenario, where a child completes only half of a chapter every day, 10 chapters can be completed in 20 days. Yet you start with the simplest interface (5+) and finish with the most advanced one (10+). Are five-year-olds supposed to instantly pick up 5 years of development? Or perhaps, after a few days, you should put Photon away for a year? Regardless, children playing with the robot on their own can run into some problems.

Photon Coding difficulty level

Photon Coding is the best app for playing with Photon. It has access to 5 dedicated programming languages that give you full range of possibilities to control and program Photon. You won’t find any clues as to what and how to program, no tasks, tutorials, or any other limitations in accessing instructions, which are problematic in other apps.

In addition to the 4 programming languages described above, Photon Coding also includes the easy level (Move), which can be used to control movement by using buttons and joystick. There’s an option to change motion speed of the robot, colors of its eyes and antennae, or to play selected sounds.

Every interface available in this app allows you to save 5 programs.

Photon EDU lesson code

The EDU app is only available for robots purchased through the educational channels. It was designed to use in conjunction with lesson plans (at present, sold separately). A robot sold to an individual customer won’t be able to connect with this app.

Photon Coding programming interfaces constitute core of the app. It works together with lesson plans through the system of “access codes”, which are actually lesson codes composed of unique sequences of 5 characters. Once you enter the right lesson code, the app prepares an interface dedicated for the given exercise. It can be, for example, an interface of Photon Badge programming language with instructions needed to perform a specific task. Lesson plans contain access codes to particular lessons, moreover, there’s an option to unlock an entire level (10 lessons for a given age group).

EDUCATIONAL MATERIALS

Currently available educational materials are presented in the form of lesson plans, devised to work together with the Photon EDU app. Materials are divided into 3 modules for different age groups and rely on different programming languages (Photon Draw and Photon Badge in module A, Photon Badge and Photon Blocks in module B, Photon Blocks and Photon Code in module C). Module A is intended for preschool and the very beginning of primary school, module B is for the two next years in primary school, module C is for all older students. Every module has an introduction to the programming languages it includes and 10 lessons lasting 45 mins each; they are supposed to be a foundation, upon which the teacher will create more lesson plans herself.

Materials look really pretty, but there are limits to their usefullness and educational value. They resemble integrated teaching classes, rather than an honest handbook on how to program. What’s more, the majority of these lessons require many additional accessories, besides the robot and a tablet. Only for one lesson, the teacher will additionally need: an educational mat, trays with flour or paper and paint, icons of forest attributes (fortunately, examples explain that it can be images of a boar, or a berry, for example), and recordings of forest sounds. Other lessons require jars, straws (which may prove problematic for some teachers in the US), stamps, chiffon scarves (for every child), pictures of emotions, or portraits of children from all around the world. In essence, preparing these lessons requires a lot of effort from the teacher. Additions to lesson plans include examples of solutions, icons to cut out, or coloring pages. However, if those materials were available in a digital form, they would be much easier to use. Interestingly, often only half of the activities designed in the lesson plans involve Photon. And if they do, it seems forced. Photon is either a prop passed from child to child, or a draw machine for quiz questions (unfortunately, you can’t program the draw, so in truth, any die could do the same job).

Materials currently available on the market were designed with only one Photon per group of pupils in mind. This solution has one advantage: low implementation cost. Nonetheless, such classes don’t provide children with as much opportunities to program. Attempts at transforming this problem into an advantage are easy to spot in the lesson plans. One of the objectives of the first lesson in the A module is supposed to be “practicing ability to wait for one’s turn and to control unpleasant emotions”. Makes one wonder how it works in practice 🙂

Lesson content depends on the module, but it focuses on several topics: forest and farm animals (A module), numbers, sets and political map (B module), measuring angles and learning about planets of the solar system (C module). Strictly programming content (randomness, conditional instructions) is limited and doesn’t appear until the last module, even though at this point students have already used the most advanced programming language, Photon Code. It wouldn’t be a problem, but these lesson plans are supposed to help with teaching programming and they are supposed to comply with official requirements of the core curriculum programme for computer sciences as defined by Ministry of National Education.

These materials illustrate more general problem of educational materials produced nowadays. They don’t teach programming, but rather use the tool to present other content. As a result, instead of learning how to program, you have classes in general knowledge that sometimes use modern technologies and include elements of computational thinking. You can observe a similar problem with materials by Edusense for the amazing Ozobot, or with “coding with paper cups” activities. It may be a sign that despite interesting teaching resources available (robots and apps), people still have hard time dealing with didactics and making use of it to create high quality curricula. Unfortunately, methodology seems to be far behind technology.

However, it looks that the producer of Photon noticed this problem. New materials are being prepared and allegedly, they will be more focused on teaching programming. Courtesy of the producer, we had a chance to test the first chapter titled “Algorithms and sequences”. In the new lesson plans, they advise to work with multiple robots (the recommended number is 1 robot per 4 students, although in our opinion, activities may still feel crowded). For those who have fewer robots at their disposal, the author has prepared suggestions on how to modify tasks.

New materials are expected to have 7 chapters with activities for various age groups (kids 7-9, 10-12 and 13-15). Photon Draw programming language won’t be used much. Depending on the age group, you’ll program Photon by using one of the three remaining languages. Chapter titles sound promising: “Algorithms and sequences”, “Bug, debugging – errors and how to find them”, “Functions”, “Interacting with the robot”, “Loops”, “Conditional statements: if, until” and “Variables”. Titles clearly indicate that materials are supposed to teach programming.

Every chapter is supposed to include three lessons lasting 45 mins each: offline exercises introducing topics mentioned in the chapter (no robot use and no programming references), introduction to a given programming language (offline as well) and practical tasks in the given language (programming Photon in groups of 4 students). The author decided that children should work with the robot only every third lesson; two other lessons of every chapter cover introductory activities, for which you don’t really need the equipment. If anything, it’s an original approach, especially if you remember these materials are being prepared for a specific teaching tool. Quite risky, according to our team. Such classes might work with younger children, who are more likely to develop interest for assembling code out of paper instructions (yet it’s impossible to rule out crying, once they learn that today, robots stay on the shelf). Nonetheless, these plans will be difficult to implement with older kids, especially teenagers. Particularly since the difficulty level doesn’t change significantly. Both the introductory tasks and the programming problems are very similar in all three age groups – the only noticeable difference is the programming langage used. In total, out of promised 21 lessons for every age group, we get only 7 that include tasks to program Photon. Not much. For the oldest kids, they will most probably prove too simple.

For programming schools and robotics clubs, the author suggests an unexpected solution. She encourages to go through all lessons in all three programming languages in every chapter. This idea seems quite bizarre, considering that every language is intended for a different age group. How old should the students be for this solution to actually work?

New and old lesson plans should soon become available for free on the producer’s online platform.

PRICES

Photon Home – 799 PLN (≈ 210 USD)
Photon EDU – 799 PLN (≈ 210 USD)
Photon EDU in extended package (with printed lesson plans and educational mat) – 1149,90 PLN (≈ 305 USD)
Lesson plans – 99,99 PLN (≈ 26 USD) (officially, they are supposed to be included for free; for now, there’s no access to the promised digital materials)
Magic Dongle for Photon (Bluetooth module for computers with Windows OS) – 79,90 PLN (≈ 22 USD)

CONCLUSIONS

Photon final score

Assessing the usefulness of Photon as a teaching tool wasn’t an easy task. The robot is cute and likable, the programming languages made a very good impression. There were no problems with connection, or using the app. Moreover, the producer continues to develop apps and materials designed to work with the robot, which is a really good sign. However, it’s impossible not to notice some problems. The robot could use more capabilities, as they would make Photon more interactive (better sensors, or additional, movable accessories to create catapults, drawing mechanisms, robots playing hockey, etc.).

Comparing Photon to other products on the market is practically unavoidable. Its numerous programming languages remind of the various difficulty levels in the great OzoBlockly app, designed for much cheaper Ozobot. The similarities between these two products don’t end here. Lesson plans for Photon and Ozobot both fail to sufficiently exploit their amazing programming languages. The Photon Robot app, designed with home users in mind, resembles the story told in the ScottieGo! set, where a robot crashes on an alien planet. However, in case of ScottieGo!, you control a digital robot through a computer, or a tablet (more on ScottieGo!). Although it doesn’t come with a real robot moving in the real world (quality that could have been exploited better with Photon), it teaches programming according to a more reliable method, even if only in one language. Then again, if you purchase Dash by Wonder Workshop (for the same price), you will get a tool with more possibilities, one that is more interactive (additional ports for accessories, better sound sensor), but without as meticulously designed programming languages. As you can see, selecting a teaching tool in this category is about making compromises.

Photon’s biggest weakness lies in educational materials. This equally applies to the tasks available through the Photon Robot app for home use and to the materials designed for school use. In this regard, Photon illustrates a widespread problem in teaching robotics and programming. We’ve come across numerous examples, where educational tools created by specialists to teach robotics and programming are accompanied by educational materials of much poorer quality. It’s easy to understand why. Robotics and programming constitute completely fresh educational disciplines that are steadily being introduced into schools. For now, there’s a shortage of specialized educators, who possess extensive interdisciplinary knowledge and experience. Consequently, few people can look at the big picture. In truth, an experienced educator should advise not only in the process of creating educational materials, but even at an earlier stage, when the product itself is being designed. Only such a solution could guarantee that the final product will be able to address the demands of teaching robotics and programming.

Not by chance, the most highly valued educational materials nowadays were created upon foundation of long-term experience, during which the lesson plans and the tools themselves evolved (LEGO WeDo is currently available in 2.0 version, Scratch in 3.0 very soon, LEGO Mindstorms is already at its 4th generation of sets). Perhaps next versions of Photon, Ozobot, or Dash will follow in their senior colleagues’ footsteps and producers will put just as much work into creating materials and assuring educational use of their products, as they do into designing construction and developing apps.

For letting us borrow Photon for testing, as well as for providing preview of new materials and apps for Photon, we cordially thank the Photon Entertainment company.  

By | 2019-04-05T13:13:49+00:00 October 17, 2018|