Ideas

  • Write-up for a cracking XOR decryption with n-pad length.
  • Write-up for calculating the probabilities that each cell is visited in a game of Monopoly. This can be done by creating a Markov matrix and then the eigen vectors of that matrix are the probabilities that a cell is visited.
  • Creating a Sudoku solver which also uses inference and domain pruning. It is expected that with domain pruning, almost completed Sudoku's will already be solved. Only if that is not solved, the backtrack algorithm will solve the rest of the puzzle.
  • Explain how to do a projection from 3D to 2D.
  • Create a simple ray tracer with sphere intersection and explain that.
  • Create a ray marcher for basic shapes with a Phong lighting model.
  • Create a Mandelbulb fractal with ray marching and other 3D fractals.
  • Create a 2D monte carlo renderer for a lighting model with cautistics.
  • Explain the Convex hull algorithm.
  • Write-up for Newton's gravity formula, and how it can be changed to repel objects.
  • Write-up for rendering the Mandelbrot formula, with smooth coloring, and other coloring techniques.
  • Create a maze generator and a solver.
  • Write-up for a graph data structure and various algorithms.
  • Write-up for dynamic programming and a few example problems.
  • Write-up for approximate integration techniques.
  • Write-up for approximating solutions for differential equations with Runge-Kutte (RK4).
  • Write-up for gradient descent algorithm on a function with n-variables.
  • Write-up for a compartment model for epidemiology.
  • Write-up for techniques for procedural generation.
  • Create a programming language that targets MSIL (.NET).
  • Sierpinski's triangle and all of the places that I seem to find it.
  • Implement the Wave Function Collapse algorithm as a CSP model
    • Each tiles' edge can only be connected to certain other tiles' edges. If we create a bitmask for each edge with a number that indicates which group of tiles is possible, then we can write constraints for each of the adjacent cells by comparing the bitmask of the edges.
    • This can be implemented with a DPLL algorithm that uses forward propagation. It needs to select variables based on the smallest domain, because the idea in the Wave Function Collapse algorithm is that we want to minimize entropy as fast as possible. The value of a variable is selected by selecting a random value from the domain.
    • Easiest way to get the domain of tiles is to feed the algorithm an image of an RPG tile set, where a map has already been created. Based on how the tiles are next to each other, an adjacency map can be set up that can be used by the algorithm.
    • The Wavefunction Collapse Algorithm explained very clearly | Robert Heaton
  • Study different geometries under a log-spherical mapping. The log-polar and log-spherical mapping is explained by Pierre Cusa on Log-spherical Mapping in SDF Raymarching (osar.fr).
  • Explain each of the five SOLID principles with real world examples, instead of the silliness with animals and shapes.

 

More: In my GitHub there are plenty of documents explaining various topics, and algorithms. Although, some of those documents could use some more text to explain how it works. Each of these can also be converted to an article, with interactive JavaScript demos.