PrimerTools | Tool used for producing Primer YouTube videos
kandi X-RAY | PrimerTools Summary
kandi X-RAY | PrimerTools Summary
PrimerTools is a C# library. PrimerTools has no bugs, it has no vulnerabilities and it has low support. However PrimerTools has a Non-SPDX License. You can download it from GitHub.
This is the tool used to make visualizations and animated simulations for Primer YouTube videos. If you want to give or receive help, there is a Primer Discord community. If you have other inquiries, you can email tools@primerlearning.org (but I will ignore help requests there; go to the discord for that).
This is the tool used to make visualizations and animated simulations for Primer YouTube videos. If you want to give or receive help, there is a Primer Discord community. If you have other inquiries, you can email tools@primerlearning.org (but I will ignore help requests there; go to the discord for that).
Support
Quality
Security
License
Reuse
Support
PrimerTools has a low active ecosystem.
It has 345 star(s) with 38 fork(s). There are 20 watchers for this library.
It had no major release in the last 6 months.
PrimerTools has no issues reported. There are no pull requests.
It has a neutral sentiment in the developer community.
The latest version of PrimerTools is current.
Quality
PrimerTools has no bugs reported.
Security
PrimerTools has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
License
PrimerTools has a Non-SPDX License.
Non-SPDX licenses can be open source with a non SPDX compliant license, or non open source licenses, and you need to review them closely before use.
Reuse
PrimerTools releases are not available. You will need to build from source code and install.
Installation instructions are available. Examples and code snippets are not available.
Top functions reviewed by kandi - BETA
kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of PrimerTools
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of PrimerTools
PrimerTools Key Features
No Key Features are available at this moment for PrimerTools.
PrimerTools Examples and Code Snippets
No Code Snippets are available at this moment for PrimerTools.
Community Discussions
No Community Discussions are available at this moment for PrimerTools.Refer to stack overflow page for discussions.
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install PrimerTools
This code only works inside of a Unity project, so you'll need to download Unity create a project. It's free for personal use. This project uses Unity 2020.3.20f1, but you're probably fine if you have a different recent version. Some objects in the repo are in the form of .blend files, so you'll need to have Blender installed for Unity to be able to interpret those. If you're just planning to use it, your best bet is probably to download Primer.unitypackage from the root directory and import that into your Unity project. Another option is to download the whole repo, unzip it, and drop it into the Assets folder of your Unity project. If you think you might contribute to the tool, I recommend setting it up as a submodule inside your Unity project's repo. Or, you can just clone this repo into your Assets folder if you don't want to use git for your Unity project. If you are planning to use git for your Unity project, this might be helpful. Once you get it open, there are four sample scenes. I'd recommend going through them in the order below. They also have some comments to help explain what they are doing. If all goes well, you should be able to open the project, pick a scene, and hit play. Then, you can modify the scripts or make your own. I'm excited to see what you make.
SimpleDirectedScene just moves a blob around a plane. It's meant to show how basics of the Director and PrimerObject classes, which are the most important two. More on them below.
CoinFlipSimBaseScene uses classes that inherit from the Simulator and SimulationManager classes to have a bunch of sphere creatures (and one blob) flip coins.
SampleGraphScene shows some features of the graph tool. There are also bar graphs, but they are shown in the dice sample scene.
DiceGameWithGraphScene is a recreation of a scene from the video on Hamilton's rule. It's the most complex sample scene, meant to show a simulation connected to a graph, which is basically the core of most video.
SimpleDirectedScene just moves a blob around a plane. It's meant to show how basics of the Director and PrimerObject classes, which are the most important two. More on them below.
CoinFlipSimBaseScene uses classes that inherit from the Simulator and SimulationManager classes to have a bunch of sphere creatures (and one blob) flip coins.
SampleGraphScene shows some features of the graph tool. There are also bar graphs, but they are shown in the dice sample scene.
DiceGameWithGraphScene is a recreation of a scene from the video on Hamilton's rule. It's the most complex sample scene, meant to show a simulation connected to a graph, which is basically the core of most video.
Support
There isn't real documentation yet, but here's an overview of the most fundamental pieces to hopefully get you going. The PrimerObject class inherits from Unity's base class for game object scripts, MonoBehaviour, and adds methods for animating parameters with easing. PrimerObject is the parent class of more specific classes like PrimerArrow, and it's what you should use as a parent class for any custom script you make for Unity game object you want to animate with this tool. For any game object you put into Unity, you can attach a PrimerObject component, which will let you call methods like MoveTo or ScaleUpFromZero. Classes that inherit from PrimerObject can also animate their C# properties (not fields) using AnimateValue. The Director class sets up the scene camera and lighting and defines some methods for setting up animation timings. To script a scene, you can make a script defining a subclass of Director that sets timings for SceneBlocks. Directors are usually going to have game objects and their components stored as variables, then manipulate and/or call those objects' methods in different parts of the scene. For example, the Unity scene "SimpleDirectedScene" has a game object named "Director" with a SimpleSceneDirector component attached to it. SimpleSceneDirector inherits from Director and defines the specific animations for the scene. Unity is a game engine. It operates on a loop that processes one frame at a time. In a game, the framerate is often flexible based on the amount of processing that needs to go into each frame. The engine keeps the "game time" in sync with real time, letting the rate of frames vary. The "Normal" director mode acts this way. In video formats, though, "game time" between frames needs to be constant, or else the speed of our eventual video will be warped. We keep the frame rate constant by setting Time.captureFramerate, which happens in "Constant Frame Rate" director mode. With this set to 60, for example, each frame loop of the game engine will move game time forward by 1/60 of a second, regardless of how much time went by in the real world while the frame was processing. This effectively slows game time down so the frames can stay in sync (or, it can even speed up the game if you have a beefy machine and a simple scene). This turns out to be pretty important when saving frames with the recorder, since at high resolutions, it can easily take close to if not more than 1/60 seconds just to save the image. It also makes it so your code can produce smooth videos even if it's slow. When you eventually make a video from your frames, your video editor of choice should be able to import an image sequence. If you need other formats, you can use Unity's official recorder asset (...or add the feature to this tool). It doesn't let you start and stop recordings (or anything else) via code, though. This tool makes extensive (excessive?) use of coroutines. The frame loop usually waits for all methods to finish before rendering the frame and moving to the next iteration in the loop. If you write a method to animate the motion of an object, it will appear to just teleport to its final destination, since all the code is executed between frames, in an instant of game time. Coroutines are different. They use yield statements to pause execution until the next iteration of the frame loop, letting you write a method that executes as game time passes. The most basic yield statement is yield return null;, which is the same as saying "stop executing here, let the frame update, and then continue on". The methods in PrimerObject mainly puts yield return null statements inside while loops that are set to run for a certain duration in game time. There are other kinds of yield statements. yield return new WaitForSeconds(x); will wait x (a float value) seconds of game time before continuing the coroutine. The Director class defines a custom yield statement yield return new WaitUntilSceneTime(x) that waits until the specified scene time (managed by the director, but usually the same as game time) in seconds. You can also yield based on the completion of another coroutine. CoinFlipScene has an example of this.
Find more information at:
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page