All Projects → ef-gy → topologic

ef-gy / topologic

Licence: MIT license
Visualiser for basic geometric primitives and fractals in arbitrary-dimensional spaces

Programming Languages

C++
36643 projects - #6 most used programming language
Objective-C++
1391 projects
objective c
16641 projects - #2 most used programming language
Roff
2310 projects
Makefile
30231 projects

Projects that are alternatives of or similar to topologic

Fractal-Inferno
An Online Fractal Flame Generator.
Stars: ✭ 41 (+5.13%)
Mutual labels:  fractals, ifs, fractal-flame
Notecalc3
NoteCalc is a handy calculator trying to bring the advantages of Soulver to the web.
Stars: ✭ 879 (+2153.85%)
Mutual labels:  math, linear-algebra
Swix
Swift Matrix Library
Stars: ✭ 581 (+1389.74%)
Mutual labels:  math, linear-algebra
Math Php
Powerful modern math library for PHP: Features descriptive statistics and regressions; Continuous and discrete probability distributions; Linear algebra with matrices and vectors, Numerical analysis; special mathematical functions; Algebra
Stars: ✭ 2,009 (+5051.28%)
Mutual labels:  math, linear-algebra
Mather
zzllrr mather(an offline tool for Math learning, education and research)小乐数学,离线可用的数学学习(自学或教学)、研究辅助工具。计划覆盖数学全部学科的解题、作图、演示、探索工具箱。目前是演示Demo版(抛转引玉),但已经支持数学公式编辑显示,部分作图功能,部分学科,如线性代数、离散数学的部分解题功能。最终目标是推动专业数学家、编程专家、教育工作者、科普工作者共同打造出更加专业级的Mather数学工具
Stars: ✭ 270 (+592.31%)
Mutual labels:  math, linear-algebra
Machine Learning Curriculum
Complete path for a beginner to become a Machine Learning Scientist!
Stars: ✭ 279 (+615.38%)
Mutual labels:  math, linear-algebra
Numphp
Mathematical PHP library for scientific computing
Stars: ✭ 120 (+207.69%)
Mutual labels:  math, linear-algebra
ign-math
General purpose math library for robot applications.
Stars: ✭ 35 (-10.26%)
Mutual labels:  math, linear-algebra
Tutorials
AI-related tutorials. Access any of them for free → https://towardsai.net/editorial
Stars: ✭ 204 (+423.08%)
Mutual labels:  math, linear-algebra
Mathnet Numerics
Math.NET Numerics
Stars: ✭ 2,688 (+6792.31%)
Mutual labels:  math, linear-algebra
Awesome-Math-Learning
📜 Collection of the most awesome Math learning resources in the form of notes, videos and cheatsheets.
Stars: ✭ 73 (+87.18%)
Mutual labels:  math, linear-algebra
mathcore
Advanced .NET math library (.NET Standard).
Stars: ✭ 24 (-38.46%)
Mutual labels:  math, linear-algebra
math-app-ml
Essential mathematics for applied machine learning and data science
Stars: ✭ 43 (+10.26%)
Mutual labels:  math, linear-algebra
Grassmann.jl
⟨Leibniz-Grassmann-Clifford⟩ differential geometric algebra / multivector simplicial complex
Stars: ✭ 289 (+641.03%)
Mutual labels:  math, linear-algebra
launchpad
Resources to get started in Quantum Computing!
Stars: ✭ 21 (-46.15%)
Mutual labels:  math, linear-algebra
Aardvark.base
Aardvark is an open-source platform for visual computing, real-time graphics and visualization. This repository is the basis for most platform libraries and provides basic functionality such as data-structures, math and much more.
Stars: ✭ 117 (+200%)
Mutual labels:  math, linear-algebra
maths-for-deep-learning-ai
A open source book covering the foundational maths of deep learning and machine learning using TensorFlow
Stars: ✭ 35 (-10.26%)
Mutual labels:  math, linear-algebra
sblas
Scala Native BLAS (Basic Linear Algebra Subprograms) supporting Linux and macOS
Stars: ✭ 25 (-35.9%)
Mutual labels:  math, linear-algebra
Numerix
A collection of useful mathematical functions in Elixir with a slant towards statistics, linear algebra and machine learning
Stars: ✭ 159 (+307.69%)
Mutual labels:  math, linear-algebra
recursion-and-dynamic-programming
Julia and Python recursion algorithm, fractal geometry and dynamic programming applications including Edit Distance, Knapsack (Multiple Choice), Stock Trading, Pythagorean Tree, Koch Snowflake, Jerusalem Cross, Sierpiński Carpet, Hilbert Curve, Pascal Triangle, Prime Factorization, Palindrome, Egg Drop, Coin Change, Hanoi Tower, Cantor Set, Fibo…
Stars: ✭ 37 (-5.13%)
Mutual labels:  fractal-images, fractals

Topologic-11

Topologic is a programme that visualises basic primitives and fractals in arbitrary dimensional spaces. Primitives include simplices, cubes and spheres, and fractals include basic affine IFSs as well as fractal flames.

Supported output methods include simple SVGs and OpenGL 3.2 and up. The actual calculations as well as most of the render tasks are performed by libefgy, a header-only C++ template library for maths.

WEBGL CLIENT

Since compiling tends to be a pain in the neck, you might want to consider using the WebGL client instead. A ready-to-run version that'll run straight in your browser without any need to install anything whatsoever - that is, if you happen to have a WebGL-enabled browser - is available at:

https://dee.pe/r

Just type that in your browser's address bar and enjoy :3.

OBTAINING TOPOLOGIC

The Free/Open Source Software version of this programme is available free of charge via git at https://github.com/ef-gy/topologic.git - to check out a local copy of that repository, use the git command line tool like this:

$ git clone --recursive https://github.com/ef-gy/topologic.git

Additionally, there's a pre-compiled version available on the Mac App Store at https://itunes.apple.com/us/app/topologic/id558300160 - this version is functionally identical to the F/OSS version, except that you don't have to compile it yourself.

Oh, and if you're not on a Mac but you happen to have an iPod/iPhone/iPad, there's an app for those, too: https://itunes.apple.com/us/app/topologic/id737310913 - I've really tried to make good use of the touch controls on those devices, promise :).

Topologic is designed so that almost all of the code is template-y C++ in header files, much like libefgy. The API documentation for this is available at: https://ef.gy/documentation/topologic - the documentation may not always be quite up to date, so, if push comes to shove just read the sources.

INSTALLATION

You'll need to have libxml2 with development files and a recent version of clang++ available on your system.

Furthermore, you'll need a recent version of libefgy - a header-only C++ template library for maths. If you don't want to install the library system-wide, you could instead just create a symlink at include/ef.gy that would point to the directory of the same name in libefgy's sources.

To compile the binary, run:

$ make

To install the programme, run:

# make PREFIX=/usr install

Adjust PREFIX as appropriate.

THE WEBGL FRONTEND

If you'd like to compile the WebGL frontend yourself instead of using the publicly available one at https://dee.pe/r you'll need to install emscripten and run the following on a command line:

$ make topologic-web.html

The WebGL client is based on a simple SDL client. Once emscripten has finished compiling you can run the client by opening the file topologic-web.html in your favourite WebGL-enabled browser.

THE COCOA/OSX FRONTEND

Since version 9, Topologic's formerly closed-source Cocoa frontend is now included in the source bundle. I'm not entirely sure why I used to keep that closed-source, but now that it's open you can just open up the "Topologic.xcodeproj" project in Xcode on your Mac and compile the frontend like any other Xcode project.

THE COCOA TOUCH/iOS FRONTEND

The "Topologic.xcodeproj" also includes the Cocoa Touch client for iOS. To compile this, use the same procedure as for the Cocoa frontend, but choose an iOS target in Xcode.

On iOS, Topologic uses futuretap's InAppSettingsKit to provide a smooth interface to choose model and rendering options. You will need to clone the InAppSettingsKit repository at https://github.com/futuretap/InAppSettingsKit and then copy or link the "InAppSettingsKit" directory from that repository to Topologic's root directory. The process is analogous to setting up the libefgy header symlink described in the Cocoa section.

COMPILE-TIME OPTIONS

The rather unusual design of this programme allows you to set an arbitrary limit to the number of dimensions supported by the projection code. This is set at compile time with the MAXDEPTH constant. The default value of this constant - if not set otherwise - is 7, meaning that the default topologic binary will be able to generate, process and render primitives in up to 7 spatial dimensions.

This limit applies to both the model depth as well as the render depth. I.e. with MAXDEPTH set to 7, then the deepest cube you can render is a 7-cube, in 7-space. But at the same time you couldn't render a 7-sphere, because that would have to be rendered in 8-space - but a 6-sphere in 7-space will work.

To set a compile-time constant, use the -D flag in your CFLAGS, like so:

$ make "CFLAGS=-g -D MAXDEPTH=8"

To confirm the number of dimensions that a topologic binary supports, use the --version flag:

$ ./topologic --version
Topologic CLI; Version 5
Maximum render depth of this binary is 8 dimensions.

LICENCE

Topologic is distributed under an MIT/X style licence. For all practical intents and purposes that means that you can do pretty much whatever you want with the code, except claim that you wrote it yourself, as long as you point out somewhere in your documentation that you used Topologic.

See the file COPYING in the repository for the exact licence terms.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].