AI is one of the fastest-growing academic and business-related fields today. Tens of billions of dollars funneled into AI within the private sector. AI can type for you, read your face, and answer your emails. These technological feats have been accomplished in a field just thirty years old, and it doesn’t stop there.

AI may be one of the most effective weapons to target all sorts of people, from Wall Street investors to opposing soldiers. Advertisers use your data to pinpoint your preferences. Without any human asking for that data to be taken or given, corporations know more about you…

Apple decided to deprecate OpenGL because they felt it was too old and outdated. Rather than replace it with OpenGL’s replacement standard, Vulkan, Apple decided to create a new, Apple specific, standard.

Step 1: Setting up the project

We will want to create a Metal application like so:

  1. Create a macOS application with the Game template.
Ooh! A game!

2. Change the Product Name to whatever you want to call this project, and make sure that Language is set to Swift and that Game Technology is set to Metal .

OpenMP is a library for executing C, C++ and Fortran code on multiple processors at the same time. This makes your code much faster if it uses a lot of loops, and utilizes the full power of your CPU. In case you just want to see the code, the link is here.

Setting up OpenMP on Ubuntu / Linux

I am not entirely sure how this works on other platforms. It is near-impossible on Mac, there are some weird setup instructions for Windows, but on Linux and Ubuntu it is really easy.

  1. Run sudo apt-get install libomp-dev in your Terminal.
  2. Create a C++ Project , and title…

Minesweeper is a fun game. Many people play it. Many people wish they could play it. Many people wish they had never started playing it. But can you make it?

Part of what makes Minesweeper so fun is the simplicity. No gameplay mechanics, the only thing that kills you is clicking on the wrong square, so it is easy and low-risk.

So why not try to make it in Processing?

Processing is an awesome tool for building graphic applications in Java. You can find the link here.

For this tutorial, I assume you know Java. No Processing knowledge is required.

So we made a basics of Raymarching in 2D and 3D. What is next?

Well, first, spheres and flat planes are boring. It would be really cool if we could make some other shapes, such as a box. Turns out, this is possible!

This article by Inigo Quilezles covers the shapes mentioned here and more, you should check it out. It is pretty cool, Inigo Quilezles has plenty of articles and demos on this stuff.

Anyway, here we go:

Axis-aligned box (or AABB) function, centered at the origin:

float sdBox( vec3 p, vec3 b ) {…

Everyone has seen those realistically rendered demos or videos, and wondered how they are made. The answer is raymarching. Raymarching is a technique for rendering, in real time (!), photo-realistic scenes and objects.

In this article, I will assume that you have a working knowledge of a C-based language such as Java, C++, GLSL, Objective-C, Swift, Python, PHP or C#. Shadertoy experience will help as well.

The way raymarching works is this:

  • For each pixel, find the direction of the ray going out of it. A ray is basically a line, starting at a single position and going out in…



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store