With more skills, I added a planet with height and terrain. I also added navigation meshes to pathfind around the land and ocean parts of the planet. Instead of being in space, now it's on a single planet. This is a fully decked out ThreeJS experience with multiplayer via EasyRTC and Networked-Aframe. There are bugs in Networked-Aframe such as when an NPC is killed or despawns between connecting to the network and creating the networked NPC, it will try to delete something that doesn't exist. It's not a perfect multiplayer netcode library.
Clicking on water will move the ship. Using the keyboard will also move the ship. Clicking on land will spawn foot soldiers or knights. The knights will launch arrows at the native NPCs on the islands. Killing native NPCs or clicking buildings will spawn gold coins. The next step is to make ships fire cannon balls and add the ability to control multiple ships and multiple NPCs.
I decided on a spherical geometry using quaternions as the basis of all math instead of vectors. Here's some prototypes with early mathematics such as Voronoi Tesselation using quaternions. I also did movement and rotation with quaternions. The graphics were very basic in the beginning of the project.
Some code I have from college that I reimplemented into JavaScript and Next.JS. It's not much but it has SVM using Voronoi and random triangles. It has a much better working language detector which is a little buggy on small amount of text because it was trained using a single book or two.Tyler Truong ML Demo
I worked on the OpenFlight Importer for Unity, a product for SimBlocks.io in 2017 from May to November. This is solid 3D and C# experience making primitives such as planes and boxes and cylinders. Unity has a way to dynamically create geometry and OpenFlight defines the geometry, it was a matter of converting a binary file into C# and then into Unity.
This is an enterprise website running on the intranet for Case New Holland. They are a tractor company similar to John Deer. They have dealerships around the world and need to know which part number is replaced by or obsoleted so service technicians can order the correct part or assembly or wire harness to repair a tractor.
GUI for a spectrum analyzer prototype. The hardware maybe simulated but the UI mocks every feature required such as FM/AM/QAM/Smith Chart/PSK. It comes in multiple languages such as English, Spanish, French, Italian and Chinese. This is a team effort by 2 developers, 1 English Major handling data entry and learning development, and 1 QA learning development with Selenium. I helped write the 2d charts and Unit Tests in Jest and Mocha. I also helped with the selenium making the tests pass with flying colors.
The rest of the team designed every button and dropdown and the color scheme for the website. They also wrote some Jest Tests and Mocha Tests.
I used my skills from the spectrum analyzer and SimBlocks.io to convert CAD DWG model specifications in C# to OpenGL. This allowed me to convert a bunch of AutoLISP to OpenGL 1.0 Graphics which worked great for the catalog of 250 custom furniture and equipment and 250k models in 2d and 3d. I learned that interior designers use layers or color coding to specify clearances between equipment such a swinging door or sliding drawer.
Later on I spent time learning WPF, Uno, WaveEngine, MAUI, ASP.Net Core, Net Framework Net Core, DLLs, WinService, WMI, ActiveX, ThreeJS, AframeVR and WebGL. This is to convert the Room Builder which I made, Custom Blocks which I helped convert from AutoLISP to C#, NapkinSketch (a free version of AutoCAD if you cannot afford $500.00 per year for AutoCAD Lite).
Kevin, the now retired business owner, handled the business development in acquiring the 200 Manufactures and their 250k models. Robert, the now retired StatusQuote President, acquired the AutoLISP for CustomBlocks and wrote must of the legacy code.
I hope this is a great resume project containing a mixture of 3d graphics, react front end, and basic material styling.
My LinkedIn Profile.The Icon is from FlatIcon.com with this link pointing towards the icon