Deliverable 1: A-Frame Scene Serialization
Description:
The goal of this deliverable is to capture or serialize a given A-Frame scene into a JSON file.
This deliverable also includes a deserialization function which will accurately reconstruct the saved A-Frame scene back into the 3D modeling environment.
Through voice commands, the user will be able to easily save their modeling work during a session and reload it in future sessions.
Afterwards, testing will be conducted to evaluate the serialization functionality on different scenes.
Implementation Steps:
- Choose format for saving the scene's state
- Implement serialization functionality
- Implement deserialization functionality
- Detect and process voice command input
- Test serialization/deserialization on different scenes
System Design Update:
- System Instructions Added:
- Use <s> tags for saving scenes and <l> tags for loading scenes. Include 'Disk' or 'Browser' within the tags to specify where the user wants to save or load. If not specified, assume 'Disk'
- For saving/loading, if the user specifies a filename, include it inside corresponding tags, all lowercase with underscores for spaces, e.g. <s>Disk: basic_scene</s>
Functional Testing Results:
( * = executed with a button press)
Scene 1: Simple scene with 3 different entity shapes
Test |
Command |
Description |
Pass/Fail |
1 |
Save the scene |
Test serialization of a simple A-Frame scene with a basic entities(Defaults to Disk) |
1 |
2 |
Save the scene to disk |
Test serialization to computer disk |
1 |
3 |
Save the scene to disk as scene_1 |
Test serialization to computer disk with specified filename |
1 |
4 |
Save the scene to the browser |
Test serialization to browser local storage |
1 |
5 |
Save the scene to the browser as scene_1 |
Test serialization to browser with specified filename |
1 |
6 |
Load scene |
Test deserialization of a simple A-Frame scene with basic entities |
*1 |
7 |
Load scene from Disk |
Test deserialization from computer disk |
*1 |
8 |
Load scene_1 from Browser |
Test deserialization from browser with specified filename |
1 |
Scene 2: Scene containing complex and nested entities
Test |
Command |
Description |
Pass/Fail |
1 |
Save the scene |
Test serialization of an A-Frame scene with nested entities(Defaults to Disk) |
1 |
2 |
Save the scene to disk |
Test serialization to computer disk |
1 |
3 |
Save the scene to disk as tree scene |
Test serialization to computer disk with specified filename |
1 |
4 |
Save the scene to the browser |
Test serialization to browser local storage |
1 |
5 |
Save the scene to the browser as tree scene |
Test serialization to browser with specified filename |
1 |
6 |
Load scene |
Test deserialization of a complex A-Frame scene with nested entities |
*1 |
7 |
Load scene from Disk |
Test deserialization from computer disk |
*1 |
8 |
Load tree scene from Browser |
Test deserialization from browser with specified filename |
1 |
Scene 3: Scene containing dynamic entities (Animation)
Test |
Command |
Description |
Pass/Fail |
1 |
Save the scene |
Test serialization of an A-Frame scene with a animated entities(Defaults to Disk) |
1 |
2 |
Save the scene to disk |
Test serialization to computer disk |
1 |
3 |
Save the scene to disk as animated pyramid |
Test serialization to computer disk with specified filename |
1 |
4 |
Save the scene to the browser |
Test serialization to browser local storage |
1 |
5 |
Save the scene to the browser as animated pyramid |
Test serialization to browser with specified filename |
1 |
6 |
Load scene |
Test deserialization an simple A-Frame scene with animated entities |
*1 |
7 |
Load scene from Disk |
Test deserialization from computer disk |
*1 |
8 |
Load animated pyramid from Browser |
Test deserialization from browser with specified filename |
1 |
Edge Case Testing Results:
Test |
Scene Input |
Command |
Description |
Handled |
1 |
Empty Scene |
Save the scene |
Test serialization of an empty A-Frame scene |
1 |
2 |
Empty Scene |
Load Scene |
Test deserialization of an empty A-Frame scene |
1 |
3 |
Invalid Json Scene |
Load Scene from Disk |
Test deserialization of invalid JSON file |
1 |
4 |
None |
Add a blue cube and then save the scene |
Test multi-command save |
1 |
5 |
Scene1 |
Load scene1 from browser, Move cone up and change the cube's color to blue |
Test load and then modification |
1 |
6 |
None |
Load Scene123 from browser |
Test load of non-existent scene |
1 |
7 |
None |
Load from browser |
Test load from browser without filename, assumes default |
1 |
8 |
None |
Load the scene I was working on yesterday |
Test load with ambiguous command |
1 |
|