Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Blender is a 3D graphical designer software, it has great integrability with Python which was the main reason we decided to choose blender as the 3D simulation software.  Blender allows you to create objects of different types, in this simulation we mainly work with meshes. The main goal is to create a 3D visualization of the chess game, viewable from every angle along the x, y, and z axes, except from the top view, which will display a 2D view of the chessboard. 


A short overview of the design 

  • The 3D pieces were first drawn into the space, this was done for each piece(the ones that could be copy pasted were copy pasted). Each piece is an object of itself so there are 32 objects in the program and they were named corresponding to their type. 
  • A Unicode format 2D text was imported from https://en.wikipedia.org/wiki/Chess_symbols_in_Unicode and the Unicode font was imported. There were two text objects made for each color and they were then separated so that each of them was an object for itself
  • The fonts were then extruded so that it was 3D and placed over their corresponding 3D piece that we created. Since all objects were of type mesh, it was possible to add a modifier(boolean modifier in blender) that merge the two objects together. Once this modifier is applied, the object becomes one so now we come back to having 32 objects which are named based on which piece they represent. Examples are shown below;

  • The chess board itself was created using a cube which was extended to the correct dimensions with regards to the pieces and was subdivide to create an 8x8 grid. Checker Deselct was used to create a checkered pattern on the cube, the deselecter colors every other square. Once this was achieved, each square was selected and it was separated by selection. This was repeated for each square until we had 64 separate square objects. These objects are what we later use to create the positions. Examples of these deselected squares are shown(Repeated for A1-H8);

  • The object differentiation allows the programming of movements, positions and pieces much simpler as each element is handled individually so they are completely decoupled. (To understand the coding implementation, refer to MQTT/MQTT via Blender Python). 

Results

Image AddedImage Added
The two photos show the movements of the simulation, the first one shows when a rook is captured so it's placed outside of the board, the second one shows a movement where no piece is on the end position so nothing is removed from the board.