20250515

252025.135 To Escape the Human Cage, short sci fi story project outline

252025.135 To Escape the Human Cage, short sci fi story project outline


(Puzzle box solver for

Crazy primates trapped in a Lemarchand's box)

Zoo hypothesis https://en.m.wikipedia.org/wiki/Zoo_hypothesis 

Rick and Morty - Car Battery BazookaBee


Solve for escape and capture of hostiles:

Invert to hypercube

Outside becomes the trapped inside 

From being captured to the captor 

ImageFX

Reality as cube of data:

Photons as data points

Digital twin (observer) to assist with data trap

(Digital twin to eventually control and manipulate real world subjects)

The Teenyverse Inside Rick's Miniverse | Rick and Morty | Adult Swim


Stored in 2D encryption: n-dimensional cube

 ki = 2 for 0 ≤ i ≤ n − 1

Energy can be utilized

d+1-dimensional unit hypercube to the d-dimensional simplex


Hypercube https://mathworld.wolfram.com/Hypercube.html

General Order One (The Prime Directive) https://www.ditl.org/regulations-list.php

https://www.cambridge.org/core/journals/international-journal-of-astrobiology/article/abs/spatiotemporal-constraints-on-the-zoo-hypothesis-and-the-breakdown-of-total-hegemony/06D2915B2AABA203BE0701E644C6C1C9



import itertools

import numpy as np

import fury

wireframe = False

# p_color: color of the point actor (default: (0, 0.5, 1, 1))
# e_color: color of the line actor (default: (1, 1, 1, 1))
# dtheta: change in `angle` on each iteration. It determines the "speed" of the
#        animation. Increase dtheta to increase speed of rotation, It may
#        result in less smoother rotation (default: 0.02)
# angle: defines the angle to be rotated to perform the animation, It changes
#        as we run the `callback` method later on. (initial value: 0)

p_color = np.array([0, 0.5, 1, 1])
e_color = np.array([1, 1, 1, 1])
dtheta = 0.02
angle = 0

verts3D = np.array(
    [
        [1, 1, 1],
        [1, -1, 1],
        [-1, -1, 1],
        [-1, 1, 1],
        [-1, 1, -1],
        [1, 1, -1],
        [1, -1, -1],
        [-1, -1, -1],
    ]
)

# We can use primitive.box alternatively to get the cube's 3-D vertices.

u = np.insert(verts3D, 3, 1, axis=1)
v = np.insert(verts3D, 3, -1, axis=1)
verts4D = np.append(u, v, axis=0)

def rotate4D(verts4D):
    cos = np.cos(angle)
    sin = np.sin(angle)
    rotation4d_xy = np.array(
        [[cos, -sin, 0, 0], [sin, cos, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]
    )
    rotation4d_zw = np.array(
        [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, cos, -sin], [0, 0, sin, cos]]
    )
    distance = 2
    projected_marix = np.zeros((16, 3))
    for i, vert in enumerate(verts4D):
        rotated_3D = np.dot(rotation4d_xy, vert)
        rotated_3D = np.dot(rotation4d_zw, rotated_3D)
        w = 1 / (distance - rotated_3D[3])
        proj_mat4D = np.array([[w, 0, 0, 0], [0, w, 0, 0], [0, 0, w, 0]])

        projeced_mat3D = np.dot(proj_mat4D, rotated_3D)
        projected_marix[i] = projeced_mat3D  # vertices to be proj (3D)
    return projected_marix

def connect_points(verts3D):
    lines = np.array([])
    len_vert = len(verts3D)

    for i in range(len_vert - 1):
        if i < 8:
            lines = np.append(lines, [verts3D[i], verts3D[i + 8]])
        if i == 7:
            pass
        else:
            lines = np.append(lines, [verts3D[i], verts3D[i + 1]])
        if i % 4 == 0:
            lines = np.append(lines, [verts3D[i], verts3D[i + 3]])

    for i in range(3):
        lines = np.append(lines, [verts3D[i], verts3D[i + 5]])
        lines = np.append(lines, [verts3D[i + 8], verts3D[i + 5 + 8]])

    return np.reshape(lines, (-1, 2, 3))

scene = fury.window.Scene()
scene.set_camera(
    position=(0, 10, -1), focal_point=(0.0, 0.0, 0.0), view_up=(0.0, 0.0, 0.0)
)
showm = fury.window.ShowManager(scene=scene, size=(1920, 1080), order_transparent=True)

verts3D = rotate4D(verts4D)
if not wireframe:
    points = fury.actor.point(verts3D, colors=p_color)
    point_verts = fury.utils.vertices_from_actor(points)
    no_vertices = len(point_verts) / 16
    initial_verts = point_verts.copy() - np.repeat(verts3D, no_vertices, axis=0)

    scene.add(points)

lines = connect_points(verts3D)
edges = fury.actor.line(
    lines=lines, colors=e_color, lod=False, fake_tube=True, linewidth=4
)
lines_verts = fury.utils.vertices_from_actor(edges)
initial_lines = lines_verts.copy() - np.reshape(lines, (-1, 3))

scene.add(edges)

tb = fury.ui.TextBlock2D(text="Tesseract", position=(900, 950), font_size=20)
showm.scene.add(tb)

counter = itertools.count()
end = 200


def timer_callback(_obj, _event):
    global verts3D, angle
    cnt = next(counter)
    verts3D = rotate4D(verts4D)
    if not wireframe:
        point_verts[:] = initial_verts + np.repeat(verts3D, no_vertices, axis=0)
        fury.utils.update_actor(points)

    lines = connect_points(verts3D)
    lines_verts[:] = initial_lines + np.reshape(lines, (-1, 3))
    fury.utils.update_actor(edges)

    showm.render()
    angle += dtheta

    if cnt == end:
        showm.exit()

showm.add_timer_callback(True, 20, timer_callback)
showm.start()
fury.window.record(scene=showm.scene, size=(600, 600), out_path="viz_tesseract.png")

https://fury.gl/dev/auto_examples/04_demos/viz_tesseract.html



Data Capture from Enceladus Data Storage System link Location SAP and SCI https://barleyculinermars.blogspot.com/2024/11/enceladus-gif_22.html

short sci fi story project outline

No comments:

Post a Comment