These examples show some of my current work. I'm interested in computer graphics, game design, artifical intelligence, robotics, and autonomous vehicle design.
This quadcopter was built as part of the Aerospace Lab Course in Computervision
The drone has four motors with a Pixhawk flight controller and Raspberry Pi computer on board. It has a camera, GPS, gryroscopes, accelerometers, altimeter, and lidar.
The drone can follow a pre-planned course using GPS coordinates, or it can be flown semi-autonomously with an R/C controller.
The Rasperry Pi uses "Yolo 8" software to recognize objects the drone is flying over such as people, dogs, cars, trees and buildings based on a custom dataset comprised of original photos as well as Google Maps satellite images.
This interactive simulation models schools of fish.
Press buttons to add more fish, shrimp or sharks.
The fish are Horse Eyed Jacks, which are common in the reefs around Cozumel, Mexico.
The models for the fish, sharks and shrimp were made in Autodesk Maya.
The simulation is programmed in Javascript. The simulation uses your GPU, if available. It can handle several thousand fish at once.
This Pinball game has everything, including collision detection and physics all written in Javascript. The objects, such as balls flippers and kickers, were made in Autodesk Maya.
Try the game. When it opens, you must click "front view" to see the game. Touch "M" to pull the launcher back, enter to launch pinball, "l" or ";" to flip the flippers. You can launch more than one ball at the same time.
It's fun to see what can be done with Javascript without a game engine.
Blue aligator skin cube that transforms to a sphere, with motion and textures done with shaders. Everything is done in the shader. You can use the mouse to spin the sphere in any direction and the shader will calculate the textures and lighting as well as the gradual transformation of the cube to a sphere. This is a GLSL source code shader that uses the graphics coprocessor.
This is another example of programming a GLSL shader to do textures and animationn. We have a sphere showing the panoramic reflection of a countryside landscape. You can use the mouse to rotate the sphere, and the reflection will be recalculated in the shader. It looks like it is moving, but it is just the shader. This is a source code shader that uses the graphics coprocessor.
This is a demonstration of how to create a realistic animated crowd simulation in unity. The characters walk between a number of defined waypoints, while avoiding collisions. This is basically a simple Unity game with players that walk around based on predefined rules.
Unity Adventure game. Travel from one island to the other. There are elevators and a bridge. If you fall off the edge of the island, you die. Then you must combat the killer robots and find and destroy their evil Cray 1 supercomputer. Uses the arrow keys and the mouse to move. Programmed in Unity. Objects were made in Maya. Multiple points of view and intelligent opponents.
Note: the demo requires a joystick for full control. Without a joystick you can move around and shoot, but control is difficult.
This is a 3d Tag game using the Kinect 3D camera. Players control the game by moving their arms. Left arm up means turn left, right arm means turn right, and both arm up means forward. Tag all the other running players and you win. Uses Unity engine and works with most versions of Kinect.
This is a collection of programs demonstrating various features of Computervision. The first is a demonstration of "Open Pose" used to draw a skeleton with joints on a photograph of a person, which is similar to the Pose feature of the Kinect camera. The demo runs in Python/Colab with OpenCV. This section is still under construction so please check back in a few days to see additional samples.
This is a project connects a robot arm to a "Raspberry Pi" computer and two cameras. Programming is done in C++. The goal is to get the robot to recognize and manipulate objects based on input from the two cameras and simple commands from the operator.
This is a small autonomous drivable electric car controlled by a "Raspberry Pi". Programming is done in either C++ or Python. The car can be fully autonomous or it can be guided by the User via Wifi/X Windows. The car has several cameras which will be used for a system for depth mapping using multicamera disparity. The ultimate goal is "SLAM" (simultaneous localisation and mapping).
In the video the robot is navigating around some obstacles by itself.
Jim Pickrell
927 6th ST # 4
Santa Monica CA 90403
USA
Jim Pickrell
Helene-Mayer-Ring 7a
Floor 18 Apt 4, 80809 Munich
Germany
jim.pickrell@gmail.com
jim.pickrell@tum.de
jimp@ucla.edu