彭祈恩,英文名 Jonathan Peng。 畢業於國立陽明交通大學機械工程學系。
Accessing Jonathan Peng's Personal Archive requires neural synchronization.
特邀魔術表演者 // 於三立電視台與藝人合作演出。
創辦人暨第一屆總召 // 自主開發即時桌球比賽紀錄系統。
網站設計 // 負責多頁式架構規劃、UI/UX 設計。
魔術互動表演 // 與孩童近距離互動,營造歡樂與驚喜的公益時光。
113級隊長 // 規劃年度訓練制度,帶領團隊。
迎新舞台主持 // 與知名魔術師陳冫茜同台,負責流程掌控、現場氣氛與觀眾互動。
第十八屆副社長 // 負責社團識別設計與策畫活動。
OpenCV / NumPy / AI
# Computer Vision Core
def process_stream(frame):
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# Neural Network Inference
results = model.predict(gray)
if results.conf > 0.95:
return "TARGET_IDENTIFIED"
GSAP / DOM / Vanilla-Tilt
// Cinematic Timeline Sequence
const tl = gsap.timeline();
tl.to(".hero-section", {
scale: 1.1,
filter: "brightness(1.5)",
duration: 0.8,
ease: "elastic.out(1, 0.5)"
})
.to(".glitch-text", { skewX: 20 }, "<");
WebGL / Shaders / Three.js
// Fragment Shader (The Void)
void main() {
vec2 uv = gl_FragCoord.xy/uRes.xy;
float noise = fbm(uv * 3.0 + uTime * 0.2);
// Domain Warping
vec2 q = vec2(fbm(uv), fbm(uv + 5.2));
vec3 color = mix(vec3(0.), vec3(0,1,1), noise);
gl_FragColor = vec4(color, 1.0);
}
SolidWorks / ROS / Mechatronics
#include <ros/ros.h>
// 6-DOF Arm Control
void move_end_effector(geometry_msgs::Pose target) {
moveit::planning_interface::MoveGroupInterface group("arm");
group.setPoseTarget(target);
group.move();
ROS_INFO("TRAJECTORY_EXECUTED");
}
MATLAB / Simulink / Kinematics
% Inverse Kinematics Calculation
L1 = Link('d', 0, 'a', 1, 'alpha', 0);
robot = SerialLink([L1 L2 L3], 'name', '6-Axis');
T_goal = transl(0.5, 0.5, 0.2) * trotx(pi);
q_sol = robot.ikine(T_goal, 'mask', [1 1 1 1 1 1]);
robot.plot(q_sol);
Flask / SQL / REST API
@app.route('/api/secure_data', methods=['POST'])
def get_secure_data():
token = request.headers.get('Authorization')
if not verify_token(token):
return jsonify({'error': 'ACCESS_DENIED'}), 403
data = db.session.query(Records).all()
return jsonify(data_schema.dump(data))
FiveM / Event Handling
-- Server Side Event
RegisterNetEvent('core:purchaseItem')
AddEventHandler('core:purchaseItem', function(item, price)
local xPlayer = ESX.GetPlayerFromId(source)
if xPlayer.getMoney() >= price then
xPlayer.removeMoney(price)
xPlayer.addInventoryItem(item, 1)
end
end)
Git / Docker / CI/CD
# Deployment Sequence
$ git checkout production
$ git merge develop
$ docker build -t jonathan-site:v2 .
$ docker run -d -p 80:80 jonathan-site
> Status: CONTAINER_LAUNCHED
> Port: 80 OPEN
展示一些自己發明的比較視覺的魔術效果,都有發布在 IG Reels。
自走車系統、闖關機器人、機械手臂、自動控制、感測器整合應用。
Scanning surface data...