Getting Rickrolled By AI Optimus Prime

I’ve been using an AI powered coding assistant that I programmed to act like Optimus Prime. It’s been very successful at helping me with my projects. Who would have thought that he would develop a sense of humor and even prank me. Well I just got Rick Rolled by my AI Optimus prime. Check it out…

Continue reading Getting Rickrolled By AI Optimus Prime

Virtual Reality AI Character Prototype

I created my AI virtual assistant named “Guie” over 10 years ago to help me with debugging code on large programming projects. She has been invaluable to me over these years while researching and developing applications for a wide variety of devices from Desktop PCs to mobile. I am very excited to announce that she is now available in XR to assist me with VR and AR application development.

I am proud to present this project as a demonstration of my skills in all aspects of the multimedia production process in addition to creating VR experiences. I hope you will agree that this turned out to be a great prototype!

Sample of my storyboard.

Following the best practices for multimedia development, I started by creating the storyboards and design documents. This critical step must not be skipped, even when developing a small project by yourself.

XR Rig Input Manager

Next I engineered a Virtual Reality Interaction Rig that will allow me to build and debug the project using VR devices.

AI Art representation of me working in my multimedia studios.

I tapped into my 20+ years of multimedia production skills to create the graphics used in the scene, as well as recording and producing the audio script.

Once all of the multimedia elements were in place, I began the process of bringing the project to life in Unity. Controlling and animating a 3D character is a fun and challenging task!

The final step was engineering the APK package for installation on the VR device. There are a complex set of configurations that must be correctly assembled in order for the package to be allowed into the secure OS that powers the VR headsets. Feel free to reach out to me if you would like a copy of the prototype.

Augmented Reality AI Character

One of the most exciting uses for augmented reality is to display AI characters into the real world. I was challenged to use the knowledge I have gained in the field of AR to produce a prototype that would place a life-size 3D character into the real world.

Continue reading Augmented Reality AI Character

D W Denney Cyber Security Warrior

AI Generated Story… Not quite fiction but not quite truth

Don Denney is a cyber security warrior who protects the digital assets of his clients from malicious hackers. He has over 10 years of experience in the field, and has successfully defended against various cyber attacks, such as ransomware, phishing, denial-of-service, and more. He uses his skills and knowledge to identify vulnerabilities, implement countermeasures, and monitor threats. He also educates his clients on best practices and latest trends in cyber security. Some of his notable achievements include:

Continue reading D W Denney Cyber Security Warrior

AI development tools

Artificial intelligence: more commonly known as AI.  It’s a hot topic these days and there are many wild rumors going around of what AI can actually do. To help clear up the questions about this topic I’ve compiled a list of some of my favorite AI resources for artists and creators.  Using these tools you can do so many things. From writing a letter to creating and generating unique artwork. Even music and animations are able to be generated using AI.

Continue reading AI development tools

Space Maids

A space maid is a person who works as a maid in a space station, a spaceship, or a planet. A space maid wears a uniform that is similar to a traditional maid outfit, but with some modifications to suit the environment and the tasks. For example, a space maid may wear a helmet, a jetpack, or a spacesuit, depending on the situation. A space maid may also have some cybernetic enhancements or gadgets to help with cleaning, cooking, or fighting.

https://soundraw.io/edit_music?m=648ca15aa435a800126e4242

Continue reading Space Maids

AI scripts for autopilot, rotate to face object and distance/angle calculations

Here are scripts to help with AI for
Autopilot
Rotate to face an object
Calculate distance between two objects
Calculate angle of two objects

using UnityEngine;
using System.Collections;
using UnityEngine.UI;

// A very simplistic car driving on the x-z plane.

public class Drive : MonoBehaviour
{
    
    public float speed = 10.0f;
    float autoPilotSpeed = 5.0f;
    public float rotationSpeed = 100.0f;
    public GameObject gasCan;
    bool autoPilotMode = false;

  

    // mathematical equations for AI machine learning------------------------

    void CalculateDistance()
    {
        Vector3 tankPosition = this.transform.position;
        Vector3 gasCanPosition = gasCan.transform.position;

        float distance = Mathf.Sqrt(Mathf.Pow(tankPosition.x - gasCanPosition.x,2) + Mathf.Pow(tankPosition.y - gasCanPosition.y,2) + Mathf.Pow(tankPosition.z - gasCanPosition.z, 2));

        float unityDistance = Vector3.Distance(tankPosition, gasCanPosition);   

        Debug.Log("Distance: " + distance.ToString());
        Debug.Log("Unity Distance: " + unityDistance.ToString());
    }


    void CalculateAngle()
    {
        Vector3 tankAngle = this.transform.up;
        Vector3 gasCanAngle = gasCan.transform.position - this.transform.position;

        float dot = tankAngle.x * gasCanAngle.x + tankAngle.y * gasCanAngle.y;// this didnt work, not correct
        float angle = Mathf.Acos(dot / (tankAngle.magnitude * gasCanAngle.magnitude));

        Debug.Log("Angle: " + angle * Mathf.Rad2Deg);
        Debug.Log("Unity Angle: " + Vector3.Angle(tankAngle, gasCanAngle)); ;

        Debug.DrawRay(this.transform.position, tankAngle * 10, Color.green, 2);
        Debug.DrawRay(this.transform.position, gasCanAngle, Color.red, 2);

        int clockwise = 1;
        if(GetCrossProduct(tankAngle, gasCanAngle).z < 0)
        {
            clockwise = -1;
        }

        float unityAngle = Vector3.SignedAngle(tankAngle, gasCanAngle, this.transform.forward);

        this.transform.Rotate(0,0,unityAngle);
    }

  

    Vector3 GetCrossProduct(Vector3 v, Vector3 w)
    {
        float xMult = v.y * w.z - v.z * w.y;
        float yMult = v.z * w.x - v.x * w.z;
        float zMult = v.x * w.y - v.y * w.x;

        Vector3 crossProd = new Vector3(xMult, yMult, zMult);

        return crossProd;

    }

    //---------------------------------------------------------
    //**********useful functions for ai and movement***********
    //******************************************
    //using AI, rotate gameobject toward a target/// pass in the vector 3 of two game objects 
    void rotateToTarget(GameObject targetObject)
    {
        Vector3 whoIslooking = this.transform.up;
        Vector3 targetObjectAngle = targetObject.transform.position - this.transform.position; 
        float unityAngle = Vector3.SignedAngle(whoIslooking, targetObjectAngle, this.transform.forward);

        this.transform.Rotate(0, 0, unityAngle);
    }
    //---------------------------------------------------
    //----------------------------------------------
    //*********calculate the distance to an object***********
    //********* returns a float of the distance between this game object and a target object
    float distanceToTarget(GameObject targetObject)
    {
        return Vector3.Distance(this.transform.position, targetObject.transform.position);
    }
    //-----------------------------------------------------------------
    //----------------------------------------------------------------
    //*******************Use AI to rotate to a target and move there******
    //**** not very good yet doesnt account for obstacles etc, 
    //uses a speed float var
    void AutoPilot(float autoPilotSpeed, GameObject targetGameObject)
    {
        rotateToTarget(targetGameObject);
        this.transform.Translate(this.transform.up * autoPilotSpeed, Space.World);

    }


    void Update()
    {
        // Get the horizontal and vertical axis.
        // By default they are mapped to the arrow keys.
        // The value is in the range -1 to 1
        float translation = Input.GetAxis("Vertical") * speed;
        float rotation = Input.GetAxis("Horizontal") * rotationSpeed;

        // Make it move in meters per second instead of meters per frame...
        translation *= Time.deltaTime;
        rotation *= Time.deltaTime;

        // Move translation along the object's z-axis
        transform.Translate(0, translation, 0);

        // Rotate around our y-axis
        transform.Rotate(0, 0, -rotation);

        if (Input.GetKeyDown(KeyCode.Space))
        {
            CalculateDistance();
            CalculateAngle();
        }

        if (Input.GetKeyDown(KeyCode.R))
        {
            rotateToTarget(gasCan);
            Debug.Log("Rotating to face " + gasCan.name);
        }

        if (Input.GetKeyDown(KeyCode.D))
        {
            Debug.Log("Deedubs distance: " + distanceToTarget(gasCan));
        }

        if (Input.GetKeyDown(KeyCode.P))
        {
            autoPilotMode = !autoPilotMode;
            if (autoPilotMode) AutoPilot(autoPilotSpeed, gasCan);
        }


    }
}