Ich war gestern im Flughafen von San Diego und habe eine tolle Leuchte gesehen. Im Internet habe ich dann gefunden, dass es ein Kunstwerk von Jim Campbell ist. Ich will es an meiner 4m-hohen Decke haben! Da ich aber kein Milliardär bin, habe ich das mit einem Python-Skript projektiert. Nun die Frage ist: wie kann ich das realisieren? Ich dachte an ein Raster von 5mm high-power LEDs (12V) in matten Glaskugeln. Ideen/Ratschläge? Spezifisch: ich suche nach sehr dünnen 2poligen Drähten, welche 500 mA aushalten. Die Dioden sollten in matten/weissen Kugel untergebracht werden. Keine Ahnung wo ich sowas finde. Und dann stellt sich die Frage nach der elektrischen Versorgung…
hier ist das Original:
hier ist der Skript, der das erzeugt.
import plotly.graph_objects as go
import numpy as np
vertical_size = -700
x_axis_length = 1000
y_axis_length = 2000
spacing = 50
# Generate grid points for X and Y, spaced at 10 units
x = np.arange(0, x_axis_length, spacing)
y = np.arange(0, y_axis_length, spacing)
# Create a meshgrid for X and Y coordinates
x_grid, y_grid = np.meshgrid(x, y)
x_flat = x_grid.flatten()
y_flat = y_grid.flatten()
# Generate random Z values for each point
z_flat = np.random.uniform(0, vertical_size, size=x_flat.shape)
# Random sizes for markers between 5 and 20
sizes = np.random.uniform(5, 20, size=x_flat.shape)
fig = go.Figure()
# Add white markers with random sizes
fig.add_trace(go.Scatter3d(
x=x_flat,
y=y_flat,
z=z_flat,
mode='markers',
marker=dict(
size=sizes,
color='white', # Set color to white
opacity=0.8
)
))
# Add lines from each point upward
for (xi, yi, zi) in zip(x_flat, y_flat, z_flat):
fig.add_trace(go.Scatter3d(
x=[xi, xi],
y=[yi, yi],
z=[zi, zi - vertical_size], # End point is now above each point's current Z
mode='lines',
line=dict(
color='seagreen', # Set line color to seagreen
width=2
)
))
# Update layout for a better view with specified axis ranges
fig.update_layout(
scene=dict(
xaxis=dict(
nticks=10,
range=[0, x_axis_length],
gridcolor='darkblue', # Keep dark blue gridlines
showbackground=False, # Make surfaces invisible
linecolor='darkblue', # Dark blue axis lines
zerolinecolor='darkblue' # Dark blue zero line
),
yaxis=dict(
nticks=10,
range=[0, y_axis_length],
gridcolor='darkblue',
showbackground=False,
linecolor='darkblue',
zerolinecolor='darkblue'
),
zaxis=dict(
nticks=5,
range=[vertical_size, 0], # Adjust the range for the entire depth of the Z-axis
gridcolor='darkblue',
showbackground=False,
linecolor='darkblue',
zerolinecolor='darkblue'
)
),
margin=dict(l=0, r=0, b=0, t=0),
paper_bgcolor='black', # Set outer background to black for contrast
scene_bgcolor='rgba(0,0,0,0)' # Set scene background to fully transparent
)
fig.show()