Skip to content

brittek/BrittekNeuraLinks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NeuraLinks by Brittek™: A 3D Node Visualization

NeuraLinks by Brittek™ is an innovative 3D node visualization project that generates dynamic and interactive displays of connected nodes. It uses HTML5 canvas and JavaScript to render visually engaging animations.

Here's what makes this project unique:

  • Dynamic Node Connections: Nodes connect and form structures dynamically based on customizable parameters.
  • Interactive Controls: The user can adjust the visualization with controls for direction, blur, and parallax effects, creating a personalized experience.
  • Responsive Design: The visualization adapts to different screen sizes, ensuring seamless viewing across devices.
  • Aesthetic Design: The combination of smooth animations, a dark background, and vibrant colors results in an immersive and visually appealing experience.

Project Structure:

  • index.html: The main HTML file sets up the canvas and includes the interactive controls.
  • index.css: This file styles the canvas, controls, and overall appearance.
  • index.js: The core of the project, containing the logic for node connections, animation, and interaction.

Core Concepts in index.js:

  • Initialization: The code sets up variables for canvas size, context, options, and arrays for connections, data, and the total set of objects to draw.
  • Connection Class: The Connection class represents each node in the visualization. Key methods include:
    • link(): Connects the node to other nodes based on defined parameters (distance, number of connections, etc.).
    • step(): Calculates the node's position and appearance for the current animation frame.
    • draw(): Renders the node on the canvas.
  • Data Class: The Data class represents animated data points that travel along the connections. It includes methods for:
    • step(): Calculates the data point's position and appearance for each frame.
    • draw(): Renders the data point on the canvas.
    • setConnection(): Assigns a data point to a specific connection.
  • Animation Function (anim()):
    • This function drives the animation loop, calculating the position and appearance of each connection and data point for each frame. It also handles the creation of new data points as needed.

Code Optimization & Enhancement:

  • Improved Code Structure and Comments: The code has been restructured with clear explanations and comments to enhance readability and maintainability.
  • Modularization: Code has been broken into functions and classes to promote code reusability and organization.
  • Performance Enhancements: The code uses techniques like requestAnimationFrame for smoother animation and optimized calculations to ensure efficient rendering.
  • User Interface:
    • The controls are now presented as a simple and intuitive UI.
    • The navigation dock is styled with modern design principles, including shadows, gradients, and animations.
  • SEO Optimization: The HTML structure has been improved to better communicate the project's content to search engines.

Deployment:

  • A GitHub Actions workflow has been included for seamless deployment to GitHub Pages.

Future Improvements:

  • 3D Depth: The project currently uses a perspective projection to create a 3D effect. Consider adding true 3D rendering for a more immersive experience.
  • Customization: Provide additional options for users to adjust visual parameters (colors, shapes, etc.) and experiment with different node layouts.
  • Interactivity: Add more complex interactive features, such as user interaction with nodes, or the ability to zoom and pan.
  • Data Visualization: Extend the project to accommodate real-world data sets for more practical applications.

Contributing:

Contributions are welcomed! Feel free to fork the repository, make changes, and submit a pull request.

License:

This project is licensed under the MIT License.

Contact:

For more information, feel free to reach out:

  • Website: https://brittek.digital
  • Instagram: @brittekdgtl
  • LinkedIn: James Britton
  • GitHub: @brittek
  • PayPal: Paypal.Me/BrittekDigtl

Enjoy exploring the world of 3D node visualization with NeuraLinks!