Code Monkey home page Code Monkey logo

melipass / umayor-vip-python-nanomagnetismo Goto Github PK

View Code? Open in Web Editor NEW
1.0 0.0 2.0 39.35 MB

This repository contains code written during Universidad Mayor's Vertically Integrated Project 'Python animations for applications in nanomagnetism', meant to help physics researchers create spins animations in Blender.

License: GNU General Public License v3.0

Python 100.00%
python blender physics physics-based-animation universidad-mayor spins georgia-tech

umayor-vip-python-nanomagnetismo's Introduction

Universidad Mayor and Vertically Integrated Projects logo

3D spins animations in Blender

About this repo

This repository contains code written during Universidad Mayor's Vertically Integrated Project Python animations for applications in nanomagnetism. Read more. It is meant to help physics researchers create spins animations in Blender.

A demo has been left in the src folder. It creates an animation based on the output of a cellular automata algorithm that writes 2D spins matrices into the matrices folder, using keyframe information from the config.json file.

There's still a lot of work to be done and any contribution is appreciated. Feel free to use this in a project and please let us know if you do!

Featured in:

Watch it here: https://youtu.be/GGVQO_T5GWs?t=701

Acerca de este repo

El contenido que se encuentra dentro de este repositorio corresponde al código realizado durante el proyecto VIP de Animaciones en Python para aplicaciones en nanomagnetismo de la Universidad Mayor. Leer más. Su propósito es ayudar a que investigadores creen animaciones acerca de espines en Blender.

Se ha dejado una demo en la carpeta src. Esa demo crea una animación basada en el output de un algoritmo autómata celular que escribe matrices 2D de espines en la carpeta matrices, permitiendo la configuración de la animación en el archivo config.json.

Hay bastantes cosas que se pueden trabajar y cualquier contribución es agradecida. Avísanos si usas este código en algún proyecto! 😊


https://www.youtube.com/watch?v=jqwrRr0v59k

umayor-vip-python-nanomagnetismo's People

Contributors

melipass avatar mella787 avatar rena006 avatar

Stargazers

 avatar

Watchers

 avatar

Forkers

rena006 mella787

umayor-vip-python-nanomagnetismo's Issues

Files aren't organized properly

Problem:

The Blender folder is quite messy, having all Python code along other files such as the Blender project file, the arrow 3D object file and a paramagnetism image.

Suggestions:

  • Python files should be placed inside a src folder, probably config.json should be there too.
  • The output folder currently holds rendered videos that are excluded from the GitHub repository. This should be placed somewhere else, probably at the root of the local repository, as it's not relevant to the code.
  • The out folder should be named matrices.
  • An assets folder would be ideal for files such as arrow.mtl and arrow.obj.
  • Many .blend files aren't in use and should be deleted. The only file that's currently in use is spins1D.blend, a better name would be useful (demo.blend?)
  • The root folder is quite messy too, and an images folder could be useful. Blender/paramagnetism.png would be better located there.

Z-axis not working as expected

Whenever ArrowAnimation(axis="z") is used, spins are expected to appear orthogonal to the lattice that's formed when the dimensions are [x,y,1], with x and y above 1.
This is not happening right now, every axis used appears parallel to the lattice, and should be fixed.

Godot proof of concept.

We're trying to use the Godot engine in order to be able to show our spin matrices on a web browser, since GDScript follows Python's syntax and godot-python exists. Godot allows exporting a project as HTML5 and also uses WebGL, we must prove this is viable for our intended use.

  • Create a simple 2D/3D parameterized spin matrix.
  • Export as a website.
  • Use GitHub Pages to host the result.

Animate the Stern-Gerlach experiment

  • Create a new Blender project
  • Code 3D movement
    • Spins should move through the beam's 3D space
      We may use Qiskit to define a spin's destination, measuring a quantum circuit with a Hadamard gate
  • Rotation could be random until the final destination is set
    We could use our current paramagnetism operator, being called every X frames

Ideally, the oven, slit, magnets and screen should be programatically created.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.